Sistemas Operacionais. - Gerência de Memória -

Tamanho: px
Começar a partir da página:

Download "Sistemas Operacionais. - Gerência de Memória -"

Transcrição

1 Sistemas Operacionais - Gerência de Memória -

2 Memória Virtual É uma técnica sofisticada de gerência de memória As memórias principal e secundária são combinadas, dando ao usuário a impressão de existir uma memória muito maior do que a MP O conceito da memória virtual está em desvincular o endereçamento feito pelo programa dos endereços físicos da MP Assim, o programa não fica limitado ao tamanho da memória física disponível

3 Memória Virtual Anteriormente, vimos que o uso de registradores base e limite eram usados para criar uma abstração de espaços de endereçamento Porque usar a memória virtual? Ainda existe um outro problema: gerenciar programas que utilizam quantidades excessivas de memória Solução: usar a técnica de overlay? A técnica de overlay exige que o programador se preocupe em dividir o seu código de forma que os módulos possam ser trazidos para a memória de forma independente trabalho árduo e lento A ideia é atribuir esta tarefa ao sistema

4 Memória Virtual Um programa em um ambiente de memória virtual faz referência a endereços virtuais No momento da execução de uma instrução, o endereço virtual é traduzido para um endereço físico Esta tradução é chamada mapeamento O conjunto de endereços virtuais que um processo pode endereçar é chamado de espaço de endereçamento virtual Analogamente o conjunto de endereços reais é chamado espaço de endereçamento real

5 Espaço de endereçamento virtual Espaço de endereçamento real Memória Virtual O espaço de endereçamento virtual não possui relação direta com o espaço de endereçamento real Endereço virtual 0 Endereço virtual 1 Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5... Endereço virtual V Endereço real 0 Endereço real 1 Endereço real 2 Endereço real 3... Endereço real R Um programa pode fazer referência a endereços virtuais que estejam fora dos limites do espaço real

6 Mapeamento Nos sistemas modernos a tarefa de tradução de endereços virtuais é realizada pelo HW juntamente com o sistema operacional O dispositivo de HW responsável por esta tradução é conhecido como MMU (Memory Management Unit) O MMU é acionado sempre que é feita referência a um endereço virtual Cada processo tem seu próprio espaço de endereçamento virtual O mecanismo de tradução deve manter tabelas de mapeamento exclusivas para cada processo

7 Mapeamento O sistema deve fazer referência a tabela de mapeamento do processo em execução Espaço de endereçamento virtual de A Endereço virtual 1... Tabela de mapeamento de A Um registrador é usado para guardar o endereço da tabela de mapeamento corrente As tabelas mapeiam blocos de dados O tamanho do bloco da memória irá definir o número de entradas da tabela de mapeamento Processo A Espaço de endereçamento virtual de B Endereço virtual 1... Processo B Tabela de mapeamento de B Memória Principal

8 Memória Virtual Quando o programa é executado só uma parte do código fica residente na memória principal O restante do código fica na memória secundária até o momento em que for referenciado Assim, o sistema operacional utiliza a memória secundária como uma extensão da MP O sistema operacional deve ser responsável por Trazer parte do código referenciado que esteja na MP Escolher qual parte do código residente na MP ira sofrer um swap out

9 Paginação A memória virtual por paginação é uma técnica onde o espaço de endereçamento virtual e real são divididos em blocos do mesmo tamanho Divide a memória física em blocos de tamanho fixo chamados quadros (frames) Divide a memória lógica em blocos de mesmo tamanho chamados páginas Evita o problema de ajustar trechos de memória de tamanhos variáveis Nos esquemas anteriores as partições tinham tamanhos variáveis

10 Paginação Quando um processo precisa ser executado, suas páginas são carregadas em qualquer quadro disponível O mapeamento do endereço virtual em real é feito através da tabela de páginas Cada processo possui sua própria tabela de páginas A MMU é responsável por fazer a tradução Memória Virtual Página virtual 0 Página virtual 1 Página virtual Tabela de páginas ETP Memória Principal Página real 0 Página real 1... Página real R Memória Secundária Página virtual V

11 Paginação Cada endereço virtual é dividido em duas partes: número da página (p) e deslocamento dentro da página (d) O número da página é usado como índice da tabela de página, que conterá o endereço base de cada quadro (f) na memória física O endereço real é obtido combinando o endereço do frame (f) com o deslocamento dentro da página (d)

12 Paginação Exemplo: Memória lógica de 16 bytes (16 bytes = 128 bits = 2 7 bits) p p d d d d d Páginas de 4 bytes (4 bytes = 32 bits = 2 5 bits) Memória física de 32 bytes (32 bytes = 256 bits = 2 8 bits) f f f d d d d d Entrada da tabela de páginas possui 3 bits e pode referenciar até 2 3 frames

13 Paginação Em geral, uma entrada da tabela de páginas possui 4 bytes Com 4 bytes (32 bits) pode-se referenciar até 2 32 quadros Se o tamanho de um quadro é 4 Kbytes (4096 bits = 2 12 bits), então é possível endereçar: 2 12 x 2 32 = 2 44 bits = 4Tbytes

14 Tabela de Páginas Além da informação sobre a localização da página, a tabela de páginas possui outras informações como: Bit de validade: indica se uma página está (1) ou não (0) na memória principal Bit de proteção: indica qual tipo de acesso é permitido na página, onde 3 bits podem ser usados para habilitar e desabilitar cada uma das operações básicas em uma página (leitura, escrita e execução) Bit de modificação: indica 1 quando a página foi escrita na memória principal Bit de referência: indica 1 quando a página foi referenciada na memória principal

15 Paginação Quando um processo faz referência a um endereço virtual, a MMU verifica através do bit de validade se a página está na memória Se for feita referência a um endereço de uma página que não está carregada na MP, então ocorre um page fault (falha de página) Neste caso, o sistema transfere a página da memória secundária para a memória principal O número de page faults gerados por cada processo em um determinado intervalo de tempo é definido como taxa de paginação do processo Se a taxa de paginação dos processos atingir valores elevados, o excesso de operação de E/S poderá comprometer o sistema

16 Page fault Paginação Endereço virtual Memória Principal Tabela de páginas Bit de validade 0 Page in Memória secundária Tabela de páginas Memória Principal Bit de validade 1 Memória secundária

17 Política de Busca de Páginas Ao se carregar uma página para a memória pode-se adotar duas estratégias diferentes: paginação por demanda e paginação antecipada Paginação por Demanda As páginas do processo são transferidas da memória secundária para a principal apenas quando são referenciadas Leva para a MP apenas as páginas realmente necessárias à execução do programa

18 Política de Busca de Páginas Paginação Antecipada Além da página referenciada, carrega para a memória principal outras páginas que podem ser necessárias ao processo ao longo do processamento Se o programa estiver armazenado sequencialmente no disco, economiza-se tempo ao levar um conjunto de páginas Caso o programa não necessite da paginação antecipada, o sistema terá perdido tempo e ocupado memória desnecessariamente

19 Política de Busca de Páginas Pode se usar uma estratégia combinada: A técnica de paginação antecipada pode ser empregada no momento da criação de um processo Quando um processo é criado, diversas páginas do programa que estão na memória secundária devem ser carregadas para a MP gera um alto número de page faults Se o sistema optar por carregar um conjunto de páginas, a taxa de paginação do processo deverá cair imediatamente Ao diminuir o número de page faults, diminui-se o tempo gasto com operações de E/S e o desempenho do sistema aumenta

20 Working Set MP contém páginas de diferentes processos Durante a execução de um processo, algumas páginas são carregadas e outras são swapped out Ao se escolher uma página para ser retirada da MP, existe a possibilidade de enviar para MS uma página de outro processo, logo antes desta ser utilizada É importante reduzir a taxa de page faults, sem prejudicar os outros processos Quando o sistema gasta a maior parte do tempo fazendo swapping, ocorre um problema conhecido como thrashing

21 Working Set Para evitar o thrashing é necessário adivinhar qual parte de código será mais necessária no futuro princípio da localidade Princípio da Localidade: É a tendência do processador referenciar instruções e dados na memória principal localizados em endereços próximos Por exemplo, esta tendência pode ser justificada pela alta incidência de estruturas de repetição e acessos a vetores Página 0 Página 1 Página 2 Página 3 Página 4 Inicialização WHILE () DO BEGIN END; Imprime resultados

22 Princípio da Localidade Localidade espacial: quando um item é referenciado, existe grande probabilidade que itens com endereços próximos sejam referenciados em seguida Localidade temporal: Quando um item é referenciado, existe grande probabilidade que ele seja referenciado novamente em breve

23 Working Set O conceito de working set está diretamente ligado ao princípio da localidade O working set de um processo é o conjunto de páginas constantemente referenciadas pelo processo O working set deve permanecer na MP para que o processo execute eficientemente ter um limite máximo de páginas permitidas Se o tamanho do working set for muito grande Então, menor será a chance de falhas de página Porém, menos processos irão compartilhar a memória

24 Working Set Uma maneira de implementar o modelo de working set é analisar a taxa de paginação de cada processo Caso um processo tenha uma taxa de paginação acima de um limite definido pelo sistema o limite de páginas reais deve ser aumentado na tentativa de alcançar o working set Caso um processo tenha uma taxa de paginação abaixo de um certo limite O sistema pode reduzir o limite de páginas sem comprometer o seu desempenho

25 Política de Alocação de Páginas Determina quantos quadros (frames) um processo pode manter na memória principal Existem duas alternativas: fixa e variável Na Política de Alocação Fixa Cada processo tem um número máximo de frames que pode ser usado durante a execução Na Política de Alocação Variável O número máximo de frames alocado para um processo durante a sua execução pode variar

26 Política de Alocação de Páginas Política de Alocação Fixa Se o número de frames alocado para um processo for pouco, uma página do próprio processo deve ser descartada para que outra seja carregada O limite de frames deve ser definido no momento da criação do processo com base no tipo de aplicação que será executada Se o limite for pequeno o processo terá alto índice de page faults Se o limite for alto poucos processos compartilharão a memória, podendo aumentar o swapping de processos O n o de frames pode ou não ser igual para todos os processos Alocar o mesmo número de frames parece justo, porém pode não ser uma boa opção, pois os processos possuem necessidades diferentes

27 Política de Alocação de Páginas Política de Alocação Variável Durante a execução dos processos o número máximo de frames pode variar em função de sua taxa de paginação e ocupação da memória principal Um processo com alta taxa de paginação Pode ter o limite máximo de frames aumentado para diminuir o alto índice de page faults Um processo com baixa taxa de paginação Pode ter seus frames alocados para outros processos Este mecanismo é mais flexível, porem exige que o SO monitore constantemente o comportamento dos processos

28 Política de Substituição de Páginas A política de substituição pode ser classificada segundo o seu escopo: local ou global Escopo Local Apenas as páginas do processo que gerou o page fault podem ser candidatas a substituição As páginas dos demais processos não são avaliadas para substituição Escopo Global Todas as páginas alocadas na MP são candidatas a substituição

29 Política de Substituição de Páginas Existe uma relação entre o escopo da política de alocação e de substituição A política de alocação fixa permite apenas a política de substituição com escopo local A política de alocação variável permite as políticas de substituição com escopo local e global Variável e Local: de tempos em tempos, o número de frames pode ser recalculado, mas a substituição é só local Variável e Global: o número de frames varia quando os processos alocam frames de outros processos Mais adotada

30 Algoritmos de Substituição de Páginas O maior problema na gerência da memória virtual com paginação não é decidir qual página será carregada na memória principal A dificuldade é decidir qual página será retirada da memória principal Os algoritmos de substituição de página têm o objetivo de selecionar os frames que tenham menor chance de serem referenciados em um futuro próximo Quanto mais sofisticado o algoritmo de substituição de páginas, maior será a sobrecarga para o sistema operacional

31 Algoritmos de substituição de páginas OPT ou MIN: Algoritmo Ótimo Possui a melhor taxa de falha de página dentre todos os algoritmos Substitui a página que ficará mais tempo sem ser referenciada no futuro Difícil saber de antemão a string de referência (a ordem em que as páginas serão referenciadas durante a execução) Como produz um resultado ótimo, é usado para estudos comparativos para se testar a eficiência de outros algoritmos

32 OPT String de Referência: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 9 falhas de página

33 Algoritmos de substituição de páginas FIFO (First In First Out) Quando uma página precisar ser substituída, a página mais antiga será escolhida para sair da memória Fácil de entender e programar É razoável pensar que uma página que já foi carregada para a MP há mais tempo, já tenha sido referenciada o suficiente Porém, isto nem sempre é verdade e seu desempenho pode não ser bom Pode ser que a primeira página carregada seja a mais utilizada no sistema

34 FIFO String de Referência: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 15 falhas de página

35 FIFO Anomalia de Belady: a taxa de falha de página pode aumentar enquanto a quantidade de quadros aumenta String de Referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

36 Algoritmos de substituição de páginas LRU (Least Recently Used) Substitui a página menos recentemente usada, ou seja aquela cuja última referência foi feita há mais tempo Se for considerado o princípio da localidade, é provável que uma página que não tenha sido referenciada recentemente não seja usada novamente em um futuro próximo Boa estratégia Possui maior sobrecarga pois deve manter atualizado o momento do último acesso a cada página (usa um timestamp)

37 LRU String de Referência: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 12 falhas de página

38 Algoritmos de substituição de páginas NRU (Not Recently Used) Usa um bit de referência para indicar se a página foi usada recentemente ou não Inicialmente, quando uma página é trazida para a memória, o seu bit de referência é zero Quando uma página que já está na memória é referenciada o seu bit muda para 1 O algoritmo substitui a página que não foi usada recentemente Pode ser mais eficiente ao se usar bits de referência adicionais

39 Algoritmos de substituição de páginas Bits de Referência adicionais (NRU diferenciado) Ao invés de utilizar um bit para indicar se a página foi referenciada recentemente, utiliza-se uma cadeia de bits Por exemplo, uma cadeia de 1 byte poderia indicar a referência a uma página nos 8 últimos períodos Uma página com bits de referência: Indica que a página não teve acesso nos 8 últimos períodos Indica que uma página teve pelo menos 1 referência a cada período foi usada mais recentemente do que a página

40 Algoritmos de substituição de páginas Bits de referência adicionais (NRU diferenciado) Neste caso o algoritmo NRU trabalha com o bit de referência e o bit de modificação (dirty bit), criando 4 classes de páginas: (0,0) não usada recentemente, nem modificada melhor página para substituir (0,1) não usada recentemente, mas modificada não tão boa, pois precisará ser escrita antes da substituição (1,0) usada recentemente, porém não modificada é provável que logo seja usada novamente (1,1) usada e modificada recentemente é provável que logo seja usada novamente, além de ter que ser escrita no disco antes de ser substituída

41 Algoritmos de substituição de páginas No algoritmo que usa o bit de referência e o bit de modificação A página substituída será aquela de menor classe Considera também as páginas modificadas, tentando minimizar a quantidade de E/S necessária

42 Algoritmos de substituição de páginas Segunda Chance Cria uma modificação no algoritmo FIFO, com o objetivo de não substituir uma página intensamente usada O bit de referência da página mais antiga é inspecionado: Se o bit = 0, então a substituição prossegue Se o bit = 1, então a página recebe uma segunda chance, seu bit de referência é zerado e sua hora de chegada é reiniciada (vai pro fim da fila) Se uma página é usada com frequência, e seu bit está sempre 1, então ela não será substituída

43 Algoritmos de substituição de páginas Segunda Chance Suponha uma falha de página no tempo 20 A página mais antiga é A Suponha que A possui o bit de referência = 1 e não será substituída

44 Algoritmos de substituição de páginas Algoritmo do Relógio (Segunda Chance Melhorado) É utilizado o mesmo algoritmo do segunda chance Inspeciona o bit de referência Porém, ao invés de inserir uma página que obteve uma segunda chance no final da fila, utiliza-se uma fila circular para melhorar o desempenho

45 Algoritmos de substituição de páginas Algoritmos baseados em contadores São mantidos contadores com o número de referências feito a cada página LFU (Least Frequently Used) A página com a menor contagem é substituída Privilegia páginas bastante utilizadas Páginas recém trazidas terão contadores com valores baixos MFU (Most Frequently Used) A página com maior contagem é substituída Baseia-se no argumento que a página com menor contagem acabou de ser trazida para a memória e ainda está para ser usada

46 Tamanho da Página Na paginação não existe fragmentação externa: todo quadro livre de memória poderá ser alocado a algum processo Pode acontecer alguma fragmentação interna se os requisitos de memória de um processo não coincidirem com os limites da página O último quadro alocado pode não estar completamente cheio Exemplo: Tamanho de Página = bytes Memória requerida pelo processo = bytes Processo alocará 11 quadros 10 completos ( bytes) bytes Resulta em uma fragmentação interna de bytes, no último quadro

47 Tamanho da página O tamanho da página está associado a arquitetura do hardware O tamanho da página é uma potência de 2 Normalmente está entre 512bytes e 16Mbytes Se o tamanho da página é pequeno: a fragmentação interna é menor porém a tabela de páginas pode ficar muito grande custos de E/S são menos eficientes

48 Tamanho da Página Considere o seguinte exemplo 32 bits para endereçamento virtual (2 32 endereços) páginas de tamanho = 4 Kbytes = 2 12 bits Qual seria o tamanho da tabela de página por processo se cada entrada da tabela de páginas ocupasse 4 bytes? Desta forma teríamos o endereço virtual configurado da seguinte forma: p = 20 bits 20 bits para indicar o número da página 12 bits para indicar o deslocamento dentro da página Tamanho da página = bytes = 4 Mbytes d = 12 bits

49 Exercício 1 Um sistema operacional implementa gerência de memória virtual por paginação. Considere endereços virtuais com 16 bits e a tabela de páginas de um processo com no máximo 256 entradas. Indique para cada endereço virtual a seguir a página virtual em que o endereço se encontra e o respectivo deslocamento dentro da página a) b) bits p p p p p p p p d d d d d d d d c) São necessários: 8 bits para referenciar o número da página 256 entradas = 2 8 entradas Sobram 8 bits para o deslocamento

50 Exercício 1 a) Página Virtual: 1 Deslocamento: 51 b) Página Virtual: 8 Deslocamento: 1 c) Página Virtual: 9 Deslocamento: 0

51 Exercício 2 Uma memória virtual possui páginas de 1024 endereços (para este exemplo, 1024 bytes). Existem 8 páginas virtuais e 4096 bytes de memória real. A tabela de páginas de um processo está descrita abaixo, sendo que o asterisco indica que a página não está na MP. a) Faça a lista/faixa de todos os endereços virtuais que irão causar page fault. b) Indique o endereço real correspondente aos seguintes endereços virtuais: 0, 1023, 1024, 6500 e Página Frame * 3 * * *

52 Exercício endereços = bits de deslocamento 8 páginas = 2 3 páginas 3 bits para indicar o número da página Endereço Virtual: p p p d d d d d d d d d d 4096 bytes de memória virtual dividida em páginas de 1024 bytes 4 frames = 2 2 frames 2 bits para indicar o número do frame Endereço Real: f f d d d d d d d d d d

53 Exercício 2 Faça a lista/faixa de todos os endereços virtuais que irão causar page fault. Considerando que cada página possui 1024 endereços e as páginas 2, 3, 5 e 7 não estão na MP, então as seguintes faixas de endereços causarão page fault: Página Frame * 3 * * *

54 Exercício 2 Indique o endereço real correspondente aos seguintes endereços virtuais: virtual real virtual real Página Frame * 3 * * * virtual real virtual real virtual real

55 TLB Suporte do HW Normalmente cada processo possui a sua própria tabela de páginas A tabela de páginas pode ser implementada como um conjunto de registradores dedicados Porém, se a tabela de páginas for muito grande o uso de registradores se torna inviável Nestes casos, a tabela de página é mantida na MP e um registrador (PTBR - Page Table Base Register) guarda o endereço da tabela de página O problema é o tempo gasto para acessar um local de memória referenciado pelo usuário: são necessários dois acessos à memória (um para a tabela de página e outro para o endereço efetivo)

56 TLB Solução padrão é usar a TLB (Translation Look-aside buffer) A TLB é implementada em um cache especial e fornece uma pesquisa rápida Cada entrada da TLB consiste em duas partes: uma chave e um valor A TLB contém apenas algumas entradas da tabela de páginas Quando um endereço lógico é gerado pela CPU, seu número de página é buscado na TLB Se o número de página for encontrado, seu número de quadro estará disponível imediatamente Se o número de página não for encontrado (TLB miss), deve então ser feita uma referência a tabela de página

57 Hardware de Paginação com TLB

58 Paginação em Múltiplos Níveis Em sistemas que implementam apenas um nível de paginação, o tamanho das tabelas de páginas pode ser um problema 0 Tabela de páginas Endereço Virtual NPV Desloc. 20 bits 12 bits Mb 20 (2-1) 32 bits Por exemplo, em um sistema onde vários processos estejam residentes na MP, é difícil e custoso gerenciar tabelas de 4 Mbytes

59 Paginação em Múltiplos Níveis Uma boa solução é usar tabelas de páginas em múltiplos níveis No esquema da paginação com dois níveis existe uma tabela diretório que possui uma entrada para cada tabela de página Neste caso, cada entrada da tabela diretório possuirá: O número da página de nível 1 (entrada da tabela de diretório) Permite localizar e endereço da tabela de páginas na tabela diretório O número da página de nível 2 (entrada da tabela de página) Permite localizar o endereço do frame na tabela de páginas O deslocamento dentro da página

60 Paginação em Múltiplos Níveis Paginação em 1 nível 2 20 entradas na TP e cada entrada com 4 bytes 2 20 x 4 bytes = 4 Mbytes NPV 1 10 bits Endereço Virtual NPV 2 10 bits Desloc. 12 bits Tamanho da TP = 4 Mbytes Paginação em 2 níveis 2 10 entradas na tabela de diretório e cada entrada com 4 bytes 2 10 x 4 bytes = 4 Kbytes Tabela diretório Tabela de páginas Tamanho da Tabela de diretório = 4 Kbytes frame

61 Paginação em Múltiplos Níveis A paginação em 2 níveis pode ser estendida para mais níveis A vantagem da paginação em múltiplos níveis é que estarão residentes na MP apenas as tabelas de páginas realmente necessárias Reduz o espaço ocupado na memória principal Para evitar que ocorra muito page fault, a ideia é que o princípio da localidade também seja aplicado às tabelas de mapeamento

62 TLB A gerência de memória virtual utiliza a técnica de mapeamento para traduzir endereços virtuais em reais O mapeamento implica em pelo menos dois acessos à MP Um acesso para a tabela de páginas E outro acesso no endereço efetivo (frame) Para agilizar o acesso: A tabela de páginas pode ser implementada como um conjunto de registradores dedicados Porém, se a tabela de páginas for grande o uso de registradores se torna inviável

63 TLB A solução: Seguindo o princípio da localidade, a maioria das aplicações referencia um número reduzido de frames na MP por vez Logo, apenas uma parte da tabela de páginas é realmente necessária na memória principal Com base neste princípio foi introduzida uma memória especial chamada TLB (Translation Lookaside Buffer) A TLB é implementada como uma memória cache Possui o mapeamento apenas dos endereços virtuais mais recentemente referenciados

64 TLB A TLB fornece uma pesquisa rápida Cada entrada da TLB consiste em duas partes: uma chave e um valor A TLB contém apenas algumas entradas da tabela de páginas Quando um endereço lógico é gerado pela CPU, seu número de página é buscado na TLB Se o número de página for encontrado, seu número de quadro estará disponível imediatamente Se o número de página não for encontrado (TLB miss), deve então ser feita uma referência a tabela de página

65 Hardware de Paginação com TLB

66 Segmentação É a técnica de gerência de memória onde o espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes chamados segmentos Um programa é dividido logicamente em sub-rotinas e estruturas de dados, que são alocados em segmentos na memória principal PROGRAM Segmento; VAR A: ARRAY... C:... PROCEDURE X; END; FUNCTION Y; Procedimento X Programa Principal Função Y Array A END; BEGIN END. Variável C...

67 Segmentação A principal diferença entre paginação e segmentação é: Na paginação os programas são divididos em páginas de tamanho fixo sem qualquer ligação com a sua estrutura do programa A segmentação permite uma relação entre a lógica do programa e a sua divisão na memória

68 Segmentação A definição dos segmentos é realizada pelo compilador O espaço de endereçamento virtual de um processo possui um número máximo de segmentos Cada segmento pode variar de tamanho dentro de um limite O tamanho do segmento pode ser alterado durante a execução do programa Espaço de endereçamento independentes permitem que uma sub-rotina seja alterada sem a necessidade de recompilar o programa principal e outras sub-rotinas

69 Segmentação Segmentos possuem espaço de endereçamento independentes

70 Segmentação O mecanismo de mapeamento é semelhante ao da paginação, neste caso, os segmentos são mapeados através de tabelas de segmentos Cada processo possui sua própria tabela de segmentos Os endereços virtuais são compostos pelo número do segmento virtual e por um deslocamento N o do segmento (sv) Deslocamento (d) O número do segmento virtual identifica a entrada da tabela de segmentos que contém o endereço do segmento físico O deslocamento indica a posição do endereço virtual em relação ao endereço inicial do segmento O endereço físico é a combinação do endereço do segmento e do deslocamento

71 Segmentação Tradução do endereço virtual Segmento virtual Deslocamento Endereço virtual Desloc. Tabela de segmentos ETS End. do segmento Desloc. Segmento na memória principal Deslocamento Endereço físico

72 Segmentação Cada entrada da tabela de segmentos possui informações adicionais como: Tamanho: especifica o tamanho do segmento Bit de validade: indica se o segmento está na MP Bit de modificação: indica se o segmento foi alterado Bit de referência: indica se o segmento foi referenciado recentemente Bit de proteção: indica o tipo de acesso ao segmento

73 Segmentação Uma vantagem da segmentação em relação a paginação é A facilidade em lidar com estruturas de dados dinâmicas O tamanho do segmento pode ser facilmente alterado Na paginação, a expansão de um vetor implica na alocação de novas páginas e consequentemente no ajuste da TP Diferentemente da paginação, a segmentação não possui fragmentação interna Existe a fragmentação externa, quando áreas livres não são grandes o suficiente para alocar novos segmentos

74 Segmentação Fragmentação externa

75 Segmentação Apenas os segmentos referenciados são levados para a MP Se as aplicações não forem desenvolvidas em módulos, grandes segmentos estarão na MP desnecessariamente Para alocar segmentos na MP, o sistema operacional mantém informações com as áreas livres e ocupadas da memória Quando um novo segmento é referenciado o SO seleciona um espaço livre suficiente para que o segmento seja alocado na MP Pode ser adotada a política best-fit, first-fit ou worst-fit

76 Segmentação com Paginação Tem o objetivo de combinar vantagens das duas técnicas Paginação Evita a fragmentação externa Segmentação Mais fácil para lidar com estruturas de dados dinâmicas, já que o tamanho do segmento pode ser facilmente alterado

77 Segmentação com Paginação Divide o espaço de endereçamento virtual em segmentos Cada segmento é dividido em páginas Na visão do programador a sua aplicação continua mapeada em segmentos de tamanhos diferentes Por outro lado, o sistema trata cada segmento como um conjunto de páginas do mesmo tamanho Assim, um segmento não precisa estar contíguo na memória Elimina o problema da fragmentação externa encontrado na segmentação pura

78 Segmentação com Paginação O endereço virtual é formado por: Número do segmento virtual Número da página virtual Deslocamento N o do segmento (sv) N o da página (p) Deslocamento (d) O número do segmento virtual indica a entrada da tabela de segmentos A tabela de segmentos indica o endereço da tabela de páginas que contém o endereço O número da página identifica a entrada da tabela de páginas O deslocamento indica a posição do endereço dentro da página O endereço real é o endereço do frame encontrado na TP combinado com o deslocamento

79 Segmentação com Paginação Segmento virtual Endereço virtual Num. segmento Num. página Deslocamento Tradução do endereço virtual Tabela de segmentos ETS End. da tabela de páginas Tabela de páginas ETP Endereço do frame Endereço do frame Deslocamento Endereço físico

80 Paginação Segmentação Consideração Paginação Segmentação O programador precisa saber qual técnica está sendo usada? O espaço de endereçamento virtual pode exceder o tamanho da memória física? Não Sim Sim Sim Quantos espaços de endereçamento lineares existem? 1 Vários Os procedimentos e dados podem ser distinguidos e protegidos separadamente? O compartilhamento de procedimentos é facilitado? Não Não Sim Sim

81 Paginação Segmentação Consideração Paginação Segmentação Os programas são divididos em pedaços de tamanhos iguais Sim Não Possui fragmentação Sim, interna Sim, externa Por que esta técnica foi inventada? Para se obter um espaço de endereçamento maior do que a memória física Para permitir a divisão dos programas logicamente e facilitar o compartilhamento e proteção

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Sumário Introdução Espaço de Endereçamento Virtual

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA VIRTUAL MACHADO/MAIA: CAPÍTULO 10 Prof. Pedro Luís Antonelli Anhanguera Educacional MEMÓRIA VIRTUAL -INTRODUÇÃO A Memória Virtual (virtual memory) é uma técnica

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Leia mais

Gerência da Memória. Adão de Melo Neto

Gerência da Memória. Adão de Melo Neto Gerência da Memória Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Atualmente

Leia mais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Gerência de Memória Virtual Conteúdo retirado do livro Arquitetura de Sistemas Operacionais Francis Berenger Machado

Leia mais

Sistemas Operacionais Memória Virtual

Sistemas Operacionais Memória Virtual Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Memória Virtual Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução Memória virtual

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais GERÊNCIA DE MEMÓRIA VIRTUAL SUMÁRIO 6 GERÊNCIA DE MEMÓRIA VIRTUAL: 61 Introdução; 62 Espaço de Endereçamento Virtual; 63 Mapeamento; 64 Memória Virtual por

Leia mais

Sistemas Operacionais. - Gerência de Memória -

Sistemas Operacionais. - Gerência de Memória - Sistemas Operacionais - Gerência de Memória - Gerenciamento de Memória A organização e a gerência de memória são fatores importantes no projeto de sistemas operacionais Um dos objetivos é desenvolver um

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de

Leia mais

GERENCIAMENTO DE MEMÓRIA

GERENCIAMENTO DE MEMÓRIA GERENCIAMENTO DE MEMÓRIA Sistemas Operacionais Gerenciamento de memória O que vem em sua cabeça quando pensa em memória? Cache RAM Velocidade Custo Memória Secundária Capacidade 2 Hierarquias de Memórias

Leia mais

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual AULA Nº 11 SISTEMAS OPERACIONAIS Técnicas de Memória Virtual 1 Contextualizando Vimos Introdução ao Gerenciamento de Memória Agora Técnicas de Memória Virtual 2 O que é Memória Virtual (MV)? É uma técnica

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 15ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

Swapping. Desvantagem:

Swapping. Desvantagem: Swapping Visa dar uma maior taxa de utilização à memória principal, melhorando seu compartilhamento Visa também resolver o problema da falta da memória principal (MP) em um sistema Funcionamento Programa

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar - Aula 6-1. Memória Virtual Conceitos Importantes: Princípio da Localidade: Quando um programa que acessa uma porção relativamente pequena do espaço endereçável em um instante qualquer. Por este princípio,

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras

Leia mais

Gerência de memória III

Gerência de memória III Gerência de memória III Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 45 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A O Espaço de Endereçamento lógico de um processo pode ser não contínuo; aloca-se memória física ao processo sempre que esta é disponível. A memória

Leia mais

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL O Processo passa a possuir um espaço de endereçamento virtual. Este espaço de endereçamento pode ser maior que a memória física. S.O.

Leia mais

Sistemas de Computação. Gerenciamento de memória

Sistemas de Computação. Gerenciamento de memória Gerenciamento de memória Localização de processos Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado Os processos podem

Leia mais

Gerência de memória II

Gerência de memória II Gerência de memória II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 48 Sumário 1 Memória Virtual Segmentação Paginação 2 Alocação de páginas

Leia mais

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3) Endereçamento Virtual (1) Gerência de Memória Paginação Espaço de endereçamento dos processos não linearmente relacionado com a física Cada vez que são usados, os endereços virtuais são convertidos pela

Leia mais

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386 Segmentação com paginação Intel 386 O processador Intel 386 usava segmentação com paginação para gerenciamento de memória com um esquema de paginação em dois níveis. Esquema de tradução de endereço Intel

Leia mais

Gerenciamento de memória

Gerenciamento de memória Gerenciamento de memória O que faz? Controla o uso dos espaços em memória Controla os modos de endereçamento dos processos Como funciona a memória? Hierarquia de memória A falta de desempenho A velocidade

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Nível do Sistema Operacional (Parte

Leia mais

MEMÓRIA LÓGICA E FÍSICA (1)

MEMÓRIA LÓGICA E FÍSICA (1) GERÊNCIA DE MEMÓRIA memória = vetor de palavras (ou bytes), cada uma com endereço próprio a memória é usada para armazenar os diversos programas em execução, bem como os dados sobre a execução dos programas

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Alexandre Beletti Ferreira Gerência de Memória Sistemas Monoprogramáveis = gerenciamento simplificado Sistemas Multiprogramáveis = gerenciamento crítico (muitos usuários

Leia mais

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition Capítulo 8: Memória Principal Silberschatz, Galvin and Gagne 2009 Objetivos Fornecer uma descrição detalhada das várias formas de organizar a memória do computador Discutir várias técnicas de gerenciamento

Leia mais

Capítulo 7 Gerência de Memória

Capítulo 7 Gerência de Memória Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof Edmilson Marmo Moreira 51 Introdução Capítulo 7 Gerência

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Primária 29/04/204 Prof. Valeria M. Bastos ORGANIZAÇÃO DA UNIDADE Processador - Escalonamento Memória Primária Fundamentos Formas de Particionamento

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) Espaço de endereçamento dos processos não linearmente relacionado com a memória física Cada vez que são usados, os endereços virtuais são convertidos

Leia mais

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Gerenciamento de memória Memória Virtual

Gerenciamento de memória Memória Virtual Sistemas Operacionais Gerenciamento de memória Memória Virtual Capítulos 8 Operating Systems: Internals and Design Principles W. Stallings Requisitos Memória Virtual e Paginação referências em um processo

Leia mais

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto Sistemas Operacionais Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Fundamentos Gerência de memória Memória Virtual Todo o espaço lógico mapeado no espaço físico O tamanho do programa

Leia mais

Sistemas Operacionais I Memória Virtual

Sistemas Operacionais I Memória Virtual Sistemas Operacionais I Memória Virtual Antônio Augusto FröhlichGeovani Ricardo Wiedenhoft grw@lisha.ufsc.br http://www.lisha.ufsc.br/~grw May 6, 2008 1 Motivação Limitação do espaço físico Programas aumentam

Leia mais

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação.

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação. % % & & Sistema Buddy Divisão da lacuna em espaços na base 2:! 1, 2, 4, 8,, até o limite da memória Até encontrar uma lacuna suficiente! Eficiente quanto à velocidade e Ineficiente quanto à fragmentação

Leia mais

Sistemas Operacionais: Memória Virtual

Sistemas Operacionais: Memória Virtual Sistemas Operacionais: Memória Virtual Memória virtual Memória virtual: separação entre a visão lógica do usuário e a memória física Somente uma parte do programa necessita estar na memória para executar

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Conceitos básicos Swapping Alocação contígua Paginação Segmentação Segmentação com paginação Atribuição de endereços (ligação) de código e dados na memória A atribuição de endereços

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo Ap. Moraes Lima 1 Segmentação Objetivo Melhorar o aspecto de localidade de referência em sistemas de memória virtual Em sistema paginado, os itens que são transferidos

Leia mais

Gerência de Memória. Aspectos de Projeto

Gerência de Memória. Aspectos de Projeto Gerência de Memória Aspectos de rojeto olíticas de Busca de áginas de um rocesso Determina em que instante uma página deve ser trazida para memória principal O objetivo é minimizar o número de faltas de

Leia mais

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para UM ESTUDO SOBRE O MECANISMO DE PAGINAÇÃO DE MEMÓRIA E OS ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINAS FIFO E LRU Fernando Sales Ferreira, fernandobrabat@hotmail.com William Antônio Faria Da Silva, William_8716@hotmail.com

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 19: Memória Virtual: Introdução Diego Passos Última Aula Paginação Método de gerenciamento de memória mais usado hoje. Espaço de endereçamento de um processo é

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Virtual 26/05/2014 Prof. Valeria M. Bastos 1 Processador Memória Primária Memória Virtual Fundamentos Organização Lógica Gerenciamento de Recursos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Gerência de Memória Alexandre Amory Edson Moreno Índice 1. Introdução e histórico de Gerência de Memória 2. Endereçamento da Memória Principal Introdução Sistema

Leia mais

Sistemas Opera r cionais Gerência de Memória

Sistemas Opera r cionais Gerência de Memória Sistemas Operacionais Gerência de Memória Gerência de Memória Idealmente, o que todo programador deseja é dispor de uma memória que seja grande rápida não volátil Hierarquia de memórias pequena quantidade

Leia mais

Memória virtual. Sistemas de Computação

Memória virtual. Sistemas de Computação Memória virtual Fundamentos Memória virtual separação da memória lógica do usuário da memória física somente uma parte do programa precisa estar na memória para execução espaço de endereçamento lógico

Leia mais

Sistemas Operacionais

Sistemas Operacionais Melhorias Sistemas Operacionais Paginação por demanda Substituição de páginas Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 30 Brasil Creative Commons Para visualizar uma cópia desta licença,

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Fundamentos Gerência de memória Memória Virtual Todo o espaço lógico mapeado no espaço físico O tamanho do programa é limitado

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais GERÊNCIA DE MEMÓRIA SUMÁRIO 5. GERÊNCIA DE MEMÓRIA: 5.1 Introdução; 5.2 Funções Básicas; 5.3 Alocação Contígua Simples; 5.4 Técnica de Overlay; ; 5.6 Swapping.

Leia mais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 18/9/009 UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Virtual 18/9/009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 ORGANIZAÇÃO DA UNIDADE Processador Memória Primária

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento da Memória Programas precisam ser trazidos para a memória para serem

Leia mais

Infra-Estrutura de Software IF677

Infra-Estrutura de Software IF677 Infra-Estrutura de Software IF677 Gerenciamento de Memória Tópicos Gerenciamento básico de memória Troca de processos Memória virtual Paginação Gerenciamento de Memória Idealmente, o que todo programador

Leia mais

Substituição de Páginas

Substituição de Páginas Substituição de Páginas Pedro Cruz EEL770 Sistemas Operacionais Lembranças sobre memória Tempo virtual Segmentação de memória Realocação Estática Dinâmica Sobreposições MMU Memory Management Unit Página

Leia mais

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger Memória Virtual Ciclo 4 AT2 Prof. Hermes Senger Nota O presente material foi elaborado com base no material didático do livro Sistemas Operacionais, 3ª edição, de H.M.Deitel, P.J. Deitel, D.R. Choffnes,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Paginação por demanda ção Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3. Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3./br/

Leia mais

AULA 14 - Memória Virtual

AULA 14 - Memória Virtual AULA 14 - Memória Virtual A idéia básica da memória virtual é permitir que programas muito maiores que a memória disponível possam ser executados. Para isso, em 1961 Fotheringham criou o método conhecido

Leia mais

EA075 Memória virtual

EA075 Memória virtual EA075 Memória virtual Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Motivação Problema: programas cujos tamanhos ultrapassavam

Leia mais

Capítulo 6 Nível do Sistema Operacional

Capítulo 6 Nível do Sistema Operacional Capítulo 6 Nível do Sistema Operacional - Sistema Operacional: Programa que, do ponto de vista do programador, adiciona uma grande quantidade de instruções e funcionalidades bem além das disponibilizadas

Leia mais

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Memória. Gestão do espaço lógico Paginação Segmentação com paginação Memória Gestão do espaço lógico Paginação Segmentação com paginação Paginação Divide-se a memória física em pequenos blocos de tamanho fixo chamados de páginas físicas (ou frames) o tamanho é uma potência

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:

Leia mais

Cap. 10 Gerência de Memória Virtual 1

Cap. 10 Gerência de Memória Virtual 1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Introdução Espaço de Endereçamento Virtual Mapeamento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 13ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7 SISTEMAS OPERACIONAIS Gerência de Memória Apostila 7 1.0 INTRODUÇÃO Historicamente, a memória principal sempre foi vista como um recurso escasso e caro. Uma das maiores preocupações dos projetistas foi

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 14ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais GERÊNCIA DE MEMÓRIA INF9 Laboratório de Sistemas Operacionais Agenda Motivação Gerência de memória com monoprogramação Gerência de memória com multiprogramação Partições Fixas Divisão e Alocação das Partições

Leia mais

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a

Leia mais

EA960 Memória virtual

EA960 Memória virtual EA960 Memória virtual Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Motivação Vimos no tópico anterior como a memória cache pode

Leia mais

Aula 10 Gerenciamento de Memória

Aula 10 Gerenciamento de Memória Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 10 Gerenciamento de Memória Capítulo9 PLT página159 2 1 Gerenciamento de

Leia mais

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais Memória virtual Pedro Cruz EEL770 Sistemas Operacionais Avisos Menos de um mês para a 1ª apresentação do trabalho Dia 22/9/2017 O que fizeram até agora? Análises Estratégias Problemas Soluções Presenças

Leia mais

Gestão de Memória. Espaço de Endereçamento

Gestão de Memória. Espaço de Endereçamento Gestão de Memória Parte I Mecanismos Espaço de Endereçamento Conjunto de posições de memória que um processo pode referenciar E se referenciar outras posições de memória? HW de gestão de memória desencadeia

Leia mais

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física Aulas anteriores Gerência de Memória Introdução e Particionamento Marcelo Johann Ciclo de Compilação, ligação e carga INF - Sistemas Operacionais I N - Marcelo Johann - 9/ Aula : Slide INF - Sistemas Operacionais

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT 1 Hierarquia de Memória Alocação particionada estática e dinâmica Gerenciamento dos

Leia mais

Gestão de Memória. Algoritmos de Gestão de Memória

Gestão de Memória. Algoritmos de Gestão de Memória Gestão de Memória Parte II Algoritmos Algoritmos de Gestão de Memória Tipos de decisões que o sistema operativo tem de tomar em relação à memória principal: Transferência: quando transferir um bloco de

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Gerência de Memória (cont) Andreza leite andreza.leite@univasf.edu.br O Grande Problema Alocação Contínua: Fragmentação 3 Fragmentação de Memória A gestão de memória mediante partições

Leia mais

Sistemas Operacionais. Gerência de Memória

Sistemas Operacionais. Gerência de Memória Sistemas Operacionais Gerência de Memória Sumário 1. Introdução 2. Funções Básicas 3. Alocação Contígua Simples 4. Técnica de Overlay 5. Alocação Particionada 1. Estática 2. Dinâmica 6. Estratégias de

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo Ap. Moraes Lima Paginação Espaço de endereço de um processo pode ser não contíguo; ao processo é alocado memória física sempre que disponível. Divide memória física

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Suporte ao Sistema Operacional Prof. Helcio

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Sistemas Operacionais. Gerenciamento de Memória

Sistemas Operacionais. Gerenciamento de Memória Sistemas Operacionais Gerenciamento de Memória Prof. Arliones Hoeller arliones.hoeller@ifsc.edu.br Abril de baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto 6 de março de Prof. Arliones

Leia mais

Gestão de Memória. Espaço de Endereçamento

Gestão de Memória. Espaço de Endereçamento Gestão de Memória Parte I Mecanismos Espaço de Endereçamento Conjunto de posições de memória que um processo pode referenciar Para ler, escrever ou executar E se referenciar outras posições de memória?

Leia mais

Segmentação de Memória

Segmentação de Memória Segmentação de Memória Pedro Cruz EEL770 Sistemas Operacionais Memória volátil Algoritmos de substituição Substituição de páginas não usadas recentemente Substituição de páginas primeiro a entrar, primeiro

Leia mais

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero

Leia mais

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória Gerência de Memória Prof. Edwar Saliba Júnior Março de 2007 1 Memorial... Programas em execução e dados acessados por ele devem estar na memória principal (ou pelo menos parte dele); Porém, a memória principal

Leia mais

LISTA DE EXERCICIOS 2

LISTA DE EXERCICIOS 2 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA SISTEMAS OPERACIONAIS I N - INF01142 LISTA DE EXERCICIOS 2 Não há gabarito, nem respostas aos exercícios

Leia mais

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2 SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes (soufes@gmail.com) 2ª. Lista de Exercícios Parte

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Gerência de Memória Andreza Leite andreza.leite@univasf.edu.br Plano da Aula 2 Introdução Necessidade gerenciador de memória Sistemas gerenciais de memória Alocação contínua n Máquina

Leia mais

Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros

Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros Algoritmos de Substituição de Páginas Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros 2 Introdução No momento em que ocorre uma page fault o sistema operacional precisa escolher uma página a

Leia mais

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 9 Gerência de Memória Cap. 5 Gerência de Memória 1 Sumário Introdução Funções básicas Alocação contígua simples Técnica

Leia mais

Capítulo 9: Memória Virtual. Operating System Concepts 8th Edition

Capítulo 9: Memória Virtual. Operating System Concepts 8th Edition Capítulo 9: Memória Virtual Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano

Leia mais

Infra-Estrutura de Software

Infra-Estrutura de Software Infra-Estrutura de Software Gerência de Memória Tópicos Gerenciamento básico de memória Troca de processos na memória (swapping) Memória virtual Troca de páginas/paginação (paging) Segmentação Gerenciador

Leia mais

Organização de um Sistema Operativo

Organização de um Sistema Operativo Gestão de Memória 1. Conceitos Básicos 2. Swapping 3. Memória Virtual 4. Algoritmos de substituição de páginas 5. Modelação de algoritmos de substituição de páginas 6. Questões no desenho de sistemas de

Leia mais

Memória Virtual. Adriano J. Holanda 1/3/2016

Memória Virtual. Adriano J. Holanda 1/3/2016 Memória Virtual Adriano J. Holanda 1/3/2016 Paginação Páginas O SO lida com páginas de memória física ao invés de bytes ou palavras. As páginas são gerenciadas pela MMU (Memory Management Unit Unidade

Leia mais

Infra-Estrutura de Software

Infra-Estrutura de Software Infra-Estrutura de Software Gerência de Memória Tópicos Gerenciamento básico de memória Troca de processos (swapping) Memória virtual Troca de páginas/paginação (paging) Gerenciador de Memória Componente

Leia mais

Administração de Memória

Administração de Memória Administração de Memória 4.1 Administração básica de memória 4.2 Swapping 4.3 Memória Virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelando algoritmos de substituição de páginas 4.6 Tópicos de

Leia mais