SO-05 Gerenciamento de Memória e Alocação

  • 18,799 views
Uploaded on

Gerenciamento de Memória. Algoritmos de Alocação (Sistemas Operacionais)

Gerenciamento de Memória. Algoritmos de Alocação (Sistemas Operacionais)

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
18,799
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
808
Comments
2
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Gerência de Memória Alocação
  • 2.   Introdução   Atribuição de Endereços, Carregamento Dinâmico, Ligação Dinâmica   Espaço de Endereçamento Físico versus Lógico   Alocação Contígua Simples   Overlay   Alocação Particionada   Fragmentação Externa e Interna   Gerência de Memória com Mapeamento de Bits   Gerência de Memória com Listas Ligadas   Algoritmos de Alocação de Partições   Swapping Eduardo Nicola F. Zagari 2 Gerência de Memória - Alocação
  • 3.   Memória  um dos mais importantes recursos de um computador   necessidade de ser gerenciada   Programas devem ser colocados dentro de um processo e então carregados em memória para serem executados.   Input queue – coleção de processos no disco que estão aguardando carregamento em memória para executarem o programa.   Funções de um Gerente de Memória   controlar quais partes da memória estão em uso   controlar quais partes estão livres   alocar memória a processos quando estes precisarem   desalocar quando eles não mais necessitarem   gerenciar a troca (swapping ) dos processos entre memória principal e disco, quando a memória não é grande o suficiente para guardar todos os processos Eduardo Nicola F. Zagari 3 Gerência de Memória - Alocação
  • 4.   A CPU busca instruções da memória de acordo com o valor do contador de instruções (PC) do programa em execução. Essas instruções podem:   buscar novos valores de endereços específicos da memória   armazenar novos valores em posições específicas da memória   Programas de usuário passam por vários passos antes de começarem a ser executados. Instrução UAL UC Parâmetros Memória PC Registrador Principal Registrador Resultado Eduardo Nicola F. Zagari 4 Gerência de Memória - Alocação
  • 5.   A maioria dos sistemas permite que os processos de usuários sejam colocados em qualquer parte da memória   assim, embora o espaço de endereçamento comece em 0000, o endereço inicial de um processo não precisa ser este.   A ligação de endereços de instruções e de dados para os Programa endereços de memória podem Fonte acontecer em 3 estágios diferentes:   Em tempo de compilação compilador ou tempo de  código absoluto: se o programa vai montador compilação ser carregado no endereço E, o código gerado pelo compilador inicia-se neste endereço (se for alterado, deve ser recompilado). Ex.: “.COMʼʼ do DOS Código Objeto Eduardo Nicola F. Zagari 5 Gerência de Memória - Alocação
  • 6.   Em tempo de carga   código relocável: quando não se Código conhece em tempo de Cód Obj Objeto de outros compilação a posição em que o programa será armazenado. módulos Ex.:  Compilador: 14 bytes do início ligador tempo  Carregador: 74000 + 14 de carga Código Biblioteca Relocável de sistema carregador Eduardo Nicola F. Zagari 6 Gerência de Memória - Alocação
  • 7.   Em tempo de execução Biblioteca   se o processo pode ser movido de sistema durante sua execução, a determinação do endereço deve ser atrasada para o tempo de carregador execução   há a necessidade de suporte de hardware para o mapeamento Biblioteca de endereços (p.ex.: de sistema registradores base e limite) carregada dinamica- mente Código tempo de binário executável execução Eduardo Nicola F. Zagari 7 Gerência de Memória - Alocação
  • 8.   O conceito de um espaço de endereçamento lógico que está associado a um espaço de endereçamento físico separado é central ao adequado gerenciamento da memória.   Endereço Lógico – gerado pela CPU; também conhecido como endereço virtual.   Endereço Físico – endereço visto pela unidade de memória.
   Endereços Lógico e Físico são os mesmo nos esquemas de atribuição de endereços em tempo de compilação e em tempo de carga.   Endereços Lógico e Físico diferem quando se usa esquema de atribuição de endereços em tempo de execução. Eduardo Nicola F. Zagari 8 Gerência de Memória - Alocação
  • 9.   Dispositivo de hardware que mapeia endereços virtuais em endereços físicos.
   Através da MMU, o valor do registrador de relocação é adicionado a todo endereço gerado pelo processo do usuário no instante em queee é enviado à memória.
   O programa do usuário lida com endereços lógicos; ele nunca vê o endereço físico real. Eduardo Nicola F. Zagari 9 Gerência de Memória - Alocação
  • 10. Registrador Base 14000 Endereço Endereço Memória Lógico Físico CPU #346 + #14346 Principal MMU Unidade de Gerenciamento de Memória Eduardo Nicola F. Zagari 10 Gerência de Memória - Alocação
  • 11.   Rotina não é carregada até que ela seja chamada   Melhor utilização do espaço de memória   Rotinas que não são usadas nunca são carregadas.   Útil quando grandes quantidades de código são necessárias para manipular casos pouco freqüentes.   Nenhum suporte especial do S.O. é requerido   Implementado através do projeto do programa. Eduardo Nicola F. Zagari 11 Gerência de Memória - Alocação
  • 12.   A ligação (linking) é adiada até o tempo de execução.   Stub: um pequeno pedaço de código usado para a localização da rotina dinâmica, residente em memória, apropriada.   O stub substitui a si próprio com o endereço da rotina e a executa.   É necessário o suporte do S.O. para verificar se a rotina está no endereço de memória dos processos.   Ligação Dinâmica é particularmente útil para bibliotecas.  Economia de espaço  Atualização  Controle de concorrência Eduardo Nicola F. Zagari 12 Gerência de Memória - Alocação
  • 13.   Toda vez que desejarmos executar um programa (residente em memória secundária), deveremos, de alguma forma, carregá-lo para a memória principal, para que o processador possa referenciar suas instruções e seus dados   Nos sistemas monoprogramados a gerência da memória não é muito complexa, mas nos sistemas multiprogramados ela se torna crítica   A seguir apresentaremos os principais esquemas de organização e gerência da memória principal Eduardo Nicola F. Zagari 13 Gerência de Memória - Alocação
  • 14.   Implementada nos primeiros SOs e ainda está presente em alguns sistemas monoprogramados   Esquema mais simples para gerência de memória   A memória principal é dividida em duas partes:   uma para o Sistema Operacional   outra para o(s) programa(s) do(s) usuário(s)   SO pode ocupar tanto a parte baixa quanto a parte mais alta da memória, dependendo da localização do vetor de interrupções Eduardo Nicola F. Zagari 14 Gerência de Memória - Alocação
  • 15.   No IBM-PC é utilizado o terceiro modelo: nos 8KB mais altos dos 1 MB de endereçamento existe uma ROM com um programa chamado BIOS (Basic Input Output System), correspondente a todos os drivers Memória Principal Memória Principal Memória Principal 0xFF Sistema Drivers de dispo- Área para o Operacional sitivos em ROM processo em ROM do usuário Área para o Área para o processo Sistema processo do usuário Operacional do usuário SO 0x00 em RAM em RAM Eduardo Nicola F. Zagari 15 Gerência de Memória - Alocação
  • 16.   Usuário tem controle sobre toda a memória principal, podendo acessar até a área do SO (caso do DOS)   PROTEÇÃO: Pode-se implementar um esquema de proteção usando um registrador que delimite as áreas do SO e usuário Memória Principal Registrador Sistema Operacional Área para o processo do usuário Eduardo Nicola F. Zagari 16 Gerência de Memória - Alocação
  • 17.   Sempre que um programa do usuário faz referência a um endereço de memória, o sistema verifica se o endereço está nos seus limites (registrador base e registrador limite). Caso não esteja, o programa de usuário pode ser cancelado e ser gerada uma mensagem de erro Registrador Registrador Limite Base Endereço Endereço Memória CPU Lógico Físico Principal < + MMU interrupção de software; erro de endereçamento Eduardo Nicola F. Zagari 17 Gerência de Memória - Alocação
  • 18.   Problemas: não permite a utilização eficiente do processador e nem da memória principal, além de limitar o tamanho do programa do usuário Memória Principal   Em SOs que suportam o conceito de Sistema MULTIPROGRAMAÇÃO, é preciso que Operacional existam outras formas de organização da memória principal, a fim de suportar vários processos na memória Processo simultaneamente do Usuário Área Livre Eduardo Nicola F. Zagari 18 Gerência de Memória - Alocação
  • 19.   Sobreposição (Overlay) (usuário)   O que fazer quando se tem um programa que ocupa mais memória do que a disponível?   Verifica-se se o programa tem seções que não necessitem permanecer na memória durante toda a execução  Mantém-se na memória somente aquelas instruções e dados que são necessários a qualquer hora.   Essas seções, uma vez executadas, podem ser substituídas por outras   A substituição ocorre pela transferência da seção do disco para a memória na área de overlay, cobrindo a seção anterior   O programa é inicialmente carregado mais rapidamente, entretanto, a execução ficará um pouco mais lenta, devido ao tempo extra gasto com a sobreposição Eduardo Nicola F. Zagari 19 Gerência de Memória - Alocação
  • 20. Armazenamento Primário Armazenamento Secundário Parte fixa Fase inicial Fase Fase final 50K do intermediária processo 30K 50K Rotina de 80K 20K controle de overlay Área 80K de Overlay Eduardo Nicola F. Zagari 20 Gerência de Memória - Alocação
  • 21.   O mecanismo de overlay é pouco transparente, pois a definição das áreas de overlay é função do programador (não é do SO), através de comandos específicos da linguagem utilizada.   Dependendo da definição, pode ocasionar sérias implicações no desempenho das aplicações, devido à transferência excessiva dos módulos entre o disco e a memória Eduardo Nicola F. Zagari 21 Gerência de Memória - Alocação
  • 22.   Motivação:   tornar mais fácil programar uma aplicação, dividindo-a em dois ou mais processos   existência de serviço interativo para vários usuários simultaneamente (tempo de resposta)   utilização da CPU (existência de processos I/O bound )   Modelos de Multiprogramação   Modelos Simplista  Se cada processo gasta 20% de seu tempo na memória usando o processador, então 5 processos alcançam um fator de utilização da CPU de 100%   E se os 5 processos esperam por E/S simultaneamente? Eduardo Nicola F. Zagari 22 Gerência de Memória - Alocação
  • 23.   Modelo Probabilistico  Cada processo gasta p% de seu tempo com E/S  n processos  probabilidade de estarem aguardando E/S simultaneamente: pn F.U.CPU = 1 - pn  Exemplo: –  1 MB de memória, SO de 200K, processos de 200K e cada um gasta 80% do tempo com E/S  4 processos na memória  FUCPU ≅ 60% –  Adição de 1 MB de RAM  grau de 4 p/ 9  FU ≅87% –  Adição de mais 1 MB de RAM  grau de multiprogramação de 9 para 14  FU ≅ 96% Eduardo Nicola F. Zagari 23 Gerência de Memória - Alocação
  • 24.   Nos primeiros SOs multiprogramados a memória principal era dividida em pedaços de tamanho fixo (possivelmente distintos), chamados partições   O tamanho das partições era estabelecido na fase de inicialização do sistema (boot), em função dos tamanhos dos programas que iriam ser executados   alteração de tamanho de partição Memória Principal  reinicialização Sistema Operacional Tabela de partições Programas a 2 KB Partição Tamanho Partição 1 serem executados 1 2 KB E D C B A Partição 2 5 KB 2 5 KB 3KB 6KB 1KB 4KB 2KB 8 KB 3 8 KB Partição 3 Eduardo Nicola F. Zagari 24 Gerência de Memória - Alocação
  • 25.   A proteção baseia-se em dois registradores, que indicam os limites inferior e superior da partição onde o programa está sendo executado   Acessos do processo usuário provocam a comparação com o registrador limite, caso haja invasão, o processo é terminado com uma mensagem de erro. Memória Principal Endereço inicial Endereço final Sistema Operacional Partição 1 Partição 2 Partição 3 Eduardo Nicola F. Zagari 25 Gerência de Memória - Alocação
  • 26.   E as chamadas aos serviços do SO ?   Isto é resolvido através da instrução chamada ao supervisor (supervisor call ) Modo Usuário versus Modo Supervisor   Modo Usuário:   Execução das instruções disponíveis aos usuários   Modo Supervisor:   Todas as instruções permitidas (não é feita comparação com o registrador limite)   A passagem do modo usuário para o modo supervisor ocorre quando da solicitação de um serviço Eduardo Nicola F. Zagari 26 Gerência de Memória - Alocação
  • 27.   Partições Fixas com Filas Múltiplas:   processo é colocado em uma partição determinada. Se estiver ocupada, aguarda na fila;   ou, processo é colocado na fila da menor partição em que caiba   Problema: partições não utilizadas Memória Principal Programas a serem executados Sistema Operacional Partição 1 Partição 2 Partição 3 Eduardo Nicola F. Zagari 27 Gerência de Memória - Alocação
  • 28.   Partições Fixas com Fila Única:   fila única para todas as partições;   processo é colocado na fila da menor partição disponível em que caiba Memória Principal Programas a Sistema Operacional serem executados Partição 1 Partição 2 Partição 3 Eduardo Nicola F. Zagari 28 Gerência de Memória - Alocação
  • 29.   Problema:   colocação de um programa pequeno em uma partição grande   partições vazias por falta de “clientes”   Uma tentativa de solução:   correr toda a fila antes de escolher o “cliente”   Problema:  discrimina pequenos processos Eduardo Nicola F. Zagari 29 Gerência de Memória - Alocação
  • 30.   Em sistemas em que os compiladores e montadores geram apenas código absoluto, os processos podem executar em apenas uma das partições, mesmo que outras estejam livres Memória Principal Programas a   Se os processos A e serem executados B estivessem Sistema Operacional executando e a 2 KB C A Partição 1 partição 3 estivesse livre, os processos C 5 KB e E não poderiam ser E B Partição 2 executados 8 KB D Partição 3 Eduardo Nicola F. Zagari 30 Gerência de Memória - Alocação
  • 31.   Com a evolução dos compiladores, linkers e loaders, tornou-se possível a geração de código relocável, permitindo que os processos sejam carregados em qualquer uma das partições Memória Principal   Se os processos A e B terminarem de Sistema Operacional executar, o processo Programas a 2 KB Processo C E pode ser carregado serem executados e executado em 5 KB qualquer uma das D E Processo A 6KB 3KB duas partições 8 KB Processo B Eduardo Nicola F. Zagari 31 Gerência de Memória - Alocação
  • 32.   Problema da APE: fragmentação excessiva   Fragmentação é o problema que surge quando pedaços de memória ficam impedidos de serem utilizados por outros processos. Memória Principal Sistema Operacional Programas a Processo C 1 KB serem executados Processo A D B 3 KB 6KB 4KB Processo E 3 KB Eduardo Nicola F. Zagari 32 Gerência de Memória - Alocação
  • 33.   Visa reduzir o problema da fragmentação e, consequentemente, aumentar o grau de compartilhamento da memória   É eliminado o conceito de partições de tamanho fixo   Na APD, cada processo utiliza o espaço necessário, passando esse pedaço a ser a sua partição Memória Principal Sistema Operacional Sistema Operacional 4 KB Programas a Processo B serem executados 11 KB 1 KB Processo C 3 KB A E C B Processo E 2KB 3KB 1KB 4KB 2 KB Processo A 1 KB Eduardo Nicola F. Zagari 33 Gerência de Memória - Alocação
  • 34. Memória Principal 0 Fila de processos Sistema Operacional Processo Tamanho Tempo 400K P1 600K 10 P2 1000K 5 P3 300K 20 P4 700K 8 P5 500K 15 2560K Eduardo Nicola F. Zagari 34 Gerência de Memória - Alocação
  • 35. 0 0 0 0 0 400K so 400K so 400K so 400K so 400K so P1 P1 P1 P5 900K 1000K 1000K 1000K 1000K 1000K P2 aloca P4 P1 P4 aloca P4 P2 termina a P4 termina a P5 1700K 1700K 1700K 2000K 2000K 2000K 2000K 2000K 2300K P3 2300K P3 2300K P3 2300K P3 2300K P3 2560K 2560K 2560K 2560K 2560K Eduardo Nicola F. Zagari 35 Gerência de Memória - Alocação
  • 36.   Neste esquema, a fragmentação começa a ocorrer quando os processos forem terminando e deixando espaços cada vez menores na memória, não permitindo o ingresso de novos processos Memória Principal   Apesar da existência de 8 Sistema Operacional Programa a Kbytes de 4 KB ser executado memória livre, o 1 KB processo D não D Processo C poderá ser 6KB 3 KB carregado 2 KB Processo A 1 KB Eduardo Nicola F. Zagari 36 Gerência de Memória - Alocação
  • 37.   Soluções para a fragmentação:   Primeira: aglutinar espaços livres adjacentes em um único espaço de tamanho maior. No exemplo anterior, caso o processo C termine, teríamos: Memória Principal Memória Principal Sistema Operacional Sistema Operacional 4 KB 1 KB 8 KB Processo C 3 KB 2 KB 2 KB Processo A 1 KB Processo A 1 KB Eduardo Nicola F. Zagari 37 Gerência de Memória - Alocação
  • 38.   Como gerenciar? (ver tópico Gerência de Uso da Memória)  Mapa de Bits  Lista de partições ocupadas  Lista de partições livres  Ao término do processo, um “buraco” pode ser: –  adicionado à lista de partições livres (caso a nova partição livre esteja cercada de partições ocupadas) –  incorporada a uma das partições da lista de partições livres (caso o “buraco” seja adjacente a uma partição livre)   Não resolve completamente o problema (pode haver buracos pequenos...) Eduardo Nicola F. Zagari 38 Gerência de Memória - Alocação
  • 39.   Segunda: fazer uma relocação de todas as regiões ocupadas (movimento de todos os processos), eliminando todos os espaços entre elas e criando-se uma única área livre contígua. Este método é conhecido como compactação. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 1 KB 4 KB Processo C 2 KB 1 KB Processo A Processo C 3 KB 8 KB 2 KB Processo A 1 KB Eduardo Nicola F. Zagari 39 Gerência de Memória - Alocação
  • 40.   Problemas:  Consumo de recursos (grande quantidade de área em disco e de tempo de processador consumido em sua implementação)  Sistema necessita parar (pode ser desastroso para sistemas de tempo real) Eduardo Nicola F. Zagari 40 Gerência de Memória - Alocação
  • 41. Modos de Compactação 0 0 0 0 300K so 300K so 300K so 300K so P1 P1 P1 P1 500K 500K 500K 500K 600K P2 600K P2 600K P2 600K P2 800K P3 400K P4 1000K P4 1000K 900K 1200K P3 1200K 1200K P3 300K 1500K 1500K P4 900K 900K P4 1900K 1900K 2100K 200K 2100K 2100K 2100K P3 Configuração 600K 400K 200K inicial transferidos transferidos transferidos Eduardo Nicola F. Zagari 41 Gerência de Memória - Alocação
  • 42.   Fragmentação Externa:   existe memória suficiente para satisfazer uma requisição, mas ela não é contínua  Estatisticamente, de cada N blocos alocados, N/2 blocos são perdidos devido à fragmentação (33%)   Fragmentação Interna: Memória Principal   memória interna a uma partição, Sistema Operacional mas que não é usada. Ex.: Processo 1 18464 requisição de 18462 bytes bytes   Uma solução para fragmentação Processo 43 externa é compactação Eduardo Nicola F. Zagari 42 Gerência de Memória - Alocação
  • 43.   Memória subdividida em unidades de alocação   A cada unidade de alocação  1 bit no mapa   Se bit é 0, esta parte da memória está livre   Se bit é 1, está ocupada   Tamanho da unidade de alocação versus tamanho do mapa   Se a unidade de alocação for de 4 bytes  a parte da memória gasta com este mapa é de apenas 3%   Se a unidade for maior  tamanho do mapa é menor, mas aumenta o desperdício de memória (fragmentação interna)   Desvantagem: para encontrar k unidades de alocação livres  percorrer mapa inteiro procurando k bits iguais a zero  muito lento! Eduardo Nicola F. Zagari 43 Gerência de Memória - Alocação
  • 44. (a) Parte da memória (b) Mapa de bits correspondente (c) Lista ligada correspondente Eduardo Nicola F. Zagari 44 Gerência de Memória - Alocação
  • 45.   Lista ligada de segmentos alocados e de segmentos livres   Ordenação por endereços   rápida atualização quando do término/remoção da memória   Possíveis combinações para a conclusão de um processo X: A X B A B A X após o término A X B de X fica B X   Com listas duplamente encadeadas a tarefa é ainda mais simples! Eduardo Nicola F. Zagari 45 Gerência de Memória - Alocação
  • 46.   Como atender uma requisição de tamanho n a partir de uma lista de buracos livres?   Estratégias de alocação de memória para escolher o ponto em que deve ser carregado um processo recém criado ou que veio do disco por troca (swapped in)   Listas separadas para processos e buracos:  mais rápido na busca por buracos  mais lento na liberação de memória  variante: os próprios buracos podem ser usados para implementar a lista de partições livres   First-fit:   A lista de partições livres é percorrida e a primeira partição suficientemente grande para o pedido é escolhida   A lista pode ser mantida em ordem aleatória ou ordenada em ordem crescente de endereço  rápido Eduardo Nicola F. Zagari 46 Gerência de Memória - Alocação
  • 47. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 3 KB Processo F 2 KB F Processo C Processo C 1 KB 4 KB Processo A 2 KB Processo A Eduardo Nicola F. Zagari 47 Gerência de Memória - Alocação
  • 48.   Next-fit:   Idêntico ao First-fit com a diferença que a busca se inicia a partir do último ponto em que encontrou um buraco  desempenho ligeiramente mais lento que o First-fit   Best-fit:   A lista de partições livres é percorrida e a menor partição suficientemente grande para o pedido é escolhida   A lista é ordenada em ordem crescente de tamanho  lento se a lista não estiver ordenada (teria que percorrer a lista inteira)  desempenho ruim devido a muitos buracos pequenos (fragmentação externa) Eduardo Nicola F. Zagari 48 Gerência de Memória - Alocação
  • 49. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 3 KB F Processo C Processo C 1 KB 4 KB Processo A Processo A 2 KB Processo F 1 KB Eduardo Nicola F. Zagari 49 Gerência de Memória - Alocação
  • 50.   Worst-fit:   A lista de partições livres é percorrida e a maior partição suficientemente grande para o pedido é escolhida   A lista é ordenada em ordem decrescente de tamanho  diminui um pouco o problema da fragmentação   Quick-fit:   Listas separadas para alguns tamanhos mais comuns especificados (por exemplo, uma fila para 2K, outra para 4K, outra para 8K, etc)  busca por buraco rápida  entretanto, a liberação de memória é lenta (reagrupar buracos e modificá-los de fila) Eduardo Nicola F. Zagari 50 Gerência de Memória - Alocação
  • 51. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 3 KB F Processo C Processo C 1 KB 4 KB Processo F 3 KB Processo A 2 KB Processo A Eduardo Nicola F. Zagari 51 Gerência de Memória - Alocação
  • 52.   Mesmo com o aumento da eficiência da multiprogramação e da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível   Em todos os esquemas apresentados anteriormente, um programa permanecia na memória principal até o final de sua execução, inclusive nos momentos em que esperava por um evento, como uma operação de E/S   Uma solução é a técnica de swapping, cujo objetivo é o de liberar espaço na RAM para que outros processos possam ser carregados e executados   Backing store – disco rápido e grande o suficiente para acomodar cópias de todas as imagens de memória para todos os usuários   Versões modificadas de swapping são encontradas em vários sistemas (p.ex., UNIX, Linux e Windows). Eduardo Nicola F. Zagari 52 Gerência de Memória - Alocação
  • 53.   Neste esquema, o SO escolhe um programa residente na memória principal, levando-o da memória para o disco (swap out) Memória Principal Sistema Operacional Processo C H Processo A 4 KB Processo G Processo B A Eduardo Nicola F. Zagari 53 Gerência de Memória - Alocação
  • 54.   Posteriormente, o processo retorna para a memória principal (swap in), como se nada tivesse ocorrido Memória Principal Sistema Operacional Processo C Processo H Processo G A Swap in Eduardo Nicola F. Zagari 54 Gerência de Memória - Alocação
  • 55.   Mapeamento de espaço lógico em espaço físico de endereçamento, em tempo de carregamento, torna ineficiente recarregar o processo em outra região física diferente da do primeiro carregamento   Solução:   Introdução de hardware que faça o mapeamento durante a execução do processo: interceptador de endereços lógicos que soma um valor base aos mesmos, produzindo o endereço físico   Não há mais necessidade da tabela de endereços relocáveis Eduardo Nicola F. Zagari 55 Gerência de Memória - Alocação
  • 56.   Relocação Estática:   Mapeamento em tempo de carregamento   Relocação Dinâmica:   Mapeamento durante a execução   Endereço Lógico = Endereço Virtual   É o valor de um deslocamento em relação ao início do programa Eduardo Nicola F. Zagari 56 Gerência de Memória - Alocação
  • 57.   Exemplo de hardware para mapeamento   Contém o endereço físico onde foi carregado o início do programa Registrador Base Instrução Operação End. Lógico + Endereço Físico = Endereço Real (disponível na memória) Eduardo Nicola F. Zagari 57 Gerência de Memória - Alocação
  • 58.   Proteção em relocação dinâmica   Consiste em comparar o endereço físico com o comprimento do programa   Instrução de chamada ao supervisor   Separação entre dados e instruções   Permite o compartilhamento de instruções por dois ou mais processos   Permite duplicar o tamanho máximo do espaço lógico   Exige a duplicação do hardware necessário para relocação e proteção Eduardo Nicola F. Zagari 58 Gerência de Memória - Alocação
  • 59.   Garantir espaço em disco sempre que algum processo é swapped out   Os algoritmos para gerenciar o espaço alocado em disco para swapping são os mesmos de gerência da memória principal   Em alguns sistemas, isto é feito somente no momento da criação do processo e tal espaço permanece reservado   A única diferença é que a quantidade de espaço reservado no disco deve ser um múltiplo do tamanho dos blocos do disco Eduardo Nicola F. Zagari 59 Gerência de Memória - Alocação