gerencia de memoria (1)
TRANSCRIPT
![Page 2: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/2.jpg)
2
Gerenciamento de Memória
Introdução
Enquanto em um sistema monoprogramável, o gerenciamento de memória não é tão complicado, num sistema multiprogramado, esta tarefa se torna crítica.
É preciso gerenciar diversas aplicações compartilhando a mesma memória física.
O sistema operacional carrega os programas localizados no disco para a memória antes de executá-los.
Como o acesso a disco (operação de IO) é muito mais demorada que um acesso à memória, o S.O. deve procurar manter o maior número de dados e programas na memória principal.
![Page 3: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/3.jpg)
3
Gerenciamento de Memória
Funções Básicas
Manter o maior número de processos na memória
SwappingSwapping quando a memória acabar
Execução de programas maiores que memória disponível
Proteção contra acessos indevidos
Compartilhamento entre processos e threadsthreads.
![Page 4: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/4.jpg)
4
Gerenciamento de Memória
Alocação de Memória
![Page 5: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/5.jpg)
5
Gerenciamento de Memória
Alocação de Memória
Quando se fala em alocação de memória, estamos falando, na verdade, de como interfacear seu programa com o sistema operacional, pois efetivamente quem lhe dará memória é o sistema operacional.
![Page 6: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/6.jpg)
6
Gerenciamento de Memória
Técnicas
Alocação Contígua Simples Alocação Contígua Overlay Alocação Particionada Swapping Memória Virtual Paginação Segmentação
![Page 7: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/7.jpg)
7
Gerenciamento de Memória
Alocação Contígua Simples
![Page 8: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/8.jpg)
8
Gerenciamento de Memória
Alocação Contígua Simples
– A alocação contígua simples foi implementada nos primeiros sistemas operacionais desenvolvidos.
– A memória principal é dividida em duas partes: uma para o Sistema Operacional e outra para o Programa do Usuário.
![Page 9: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/9.jpg)
9
Gerenciamento de Memória
Alocação Contígua Simples
– O programador deve desenvolver suas aplicações preocupado-se , apenas, em não ultrapassar o espaço de memória disponível.
– O usuário tem controle sobre toda a memória principal, podendo acessar qualquer posição de memória, inclusive para alterar o Sistema Operacional.
– Alguns sistemas implementam proteção através de um registrador, que delimita as áreas do Sistema Operacional e do usuário.
![Page 10: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/10.jpg)
10
Gerenciamento de Memória
Alocação Contígua Simples
– Dessa forma, sempre que um programa de usuário faz referência a um endereço na memória, o sistema verifica se o endereço está nos seus limites.
– Apesar de sua fácil implementação e código reduzido, a alocação contígua simples não permite a utilização eficiente do processador.
![Page 11: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/11.jpg)
11
Gerenciamento de Memória
Alocação Contígua Simples
– Proteção – há um registrador para não deixar o programa acessar uma área do S.O.
![Page 12: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/12.jpg)
12
Gerenciamento de Memória
Alocação Contígua Simples
– Apenas um usuário pode dispor desses recursos.– Caso o programa do usuário não preencha totalmente,
existirá um espaço de memória sem utilização.– A princípio, os programas dos usuários estavam
limitados ao tamanho da memória principal disponível.
![Page 13: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/13.jpg)
13
Gerenciamento de Memória
Alocação Contígua Simples– Problema: Subutilização da memória, pois apenas
um usuário tem acesso ao sistema por vez.
Lembre-se: Apenas 1 programa poderá ser executado por vez.
Área de Memória desperdiçada
![Page 14: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/14.jpg)
14
Gerenciamento de Memória
Alocação Contígua Overlay
![Page 15: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/15.jpg)
15
Gerenciamento de Memória
Alocação Contígua Overlay
– Quando um módulo estiver na memória, o outro não precisa necessariamente estar.
– O módulo principal é comum aos dois módulos; logo, deve permanecer na memória durante todo o tempo.
– A definição das áreas de overlay é função do programador, através de comandos específicos da linguagem utilizada.
– O tamanho de uma área será estabelecido a partir do tamanho do maior módulo.
![Page 16: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/16.jpg)
16
Gerenciamento de Memória
Alocação Contígua Overlay
– A técnica de overlay tem a vantagem de permitir ao programador expandir os limites da memória principal.
– A utilização dessa técnica exige muito cuidado, pois pode trazer implicações tanto no desempenho das aplicações, devido à possibilidade de transfer6encia excessiva dos módulos entre disco e a memória, quanto na sua manutenção.
![Page 17: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/17.jpg)
17
Gerenciamento de Memória
Alocação Contígua Overlay
O tamanho da área de overlay será estabelecido pela módulo de maior tamanho.
![Page 18: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/18.jpg)
18
Gerenciamento de Memória
Alocação Particionada
![Page 19: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/19.jpg)
19
Gerenciamento de Memória
Alocação Particionada
– Nos sistemas multiprogramáveis, o processador permanece ocioso e a memória é substituída, enquanto o programa aguarda por algum evento.
– Para a multiprogramação ser eficiente, é necessário que vários programas estejam na memória ao mesmo tempo, daí a necessidade de uma nova forma de organização para a memória principal.
![Page 20: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/20.jpg)
20
Gerenciamento de Memória
Alocação Particionada
– Já é uma maneira mais sofisticada de gerenciar a memória
– A alocação particionada pode ser: Estática ou Fixa – O tamanho das partições é
fixo e definido a priori (Absoluta e Relocável). Dinâmica – O tamanho das partições podem
ser alterados dinamicamente.
![Page 21: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/21.jpg)
21
Gerenciamento de Memória
Alocação Particionada Estática Absoluta
![Page 22: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/22.jpg)
22
Gerenciamento de Memória
Alocação Particionada Estática Absoluta
Nos primeiros sistemas multiprogramáveis, a memória foi dividida em pedaços de tamanho fixo, chamados partições.
O tamanho das partições era estabelecido na fase de iniciação do sistema, em função do tamanho dos programas que executariam no ambiente.
Sempre que fosse necessária a alteração do tamanho de uma partição, o sistema deveria ser desativado e reiniciado com uma nova configuração.
A princípio, os programas só podiam executar em uma das partições, mesmo se outras estivessem disponíveis.
![Page 23: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/23.jpg)
23
Gerenciamento de Memória
Alocação Particionada Estática Absoluta
Essa limitação se devia aos compiladores e montadores, que geravam apenas código absoluto.
A esse tipo de alocação chamou-se alocação particionada estática absoluta.
![Page 24: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/24.jpg)
24
Gerenciamento de Memória
Alocação Particionada Estática Absoluta
![Page 25: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/25.jpg)
25
Gerenciamento de Memória
Alocação Particionada Estática Relocável
![Page 26: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/26.jpg)
26
Gerenciamento de Memória
Alocação Particionada Estática Relocável
Com a evolução dos compiladores, linkers e loaders, a geração de código relocável foi possível, e os programas puderam ser carregados em qualquer partição.
Foi criado um novo tipo de organização, denominado alocação particionada estática relocável.
Para manter o controle de quais partições estavam alocadas ou não, os sistemas possuíam uma tabela, delimitando cada partição, seu tamanho e se estava em uso ou não.
Sempre que um programa era carregado para a memória, o sistema percorria a tabela, na tentativa de localizar uma partição livre, onde o programa pudesse ser alocado.
![Page 27: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/27.jpg)
27
Gerenciamento de Memória
Alocação Particionada Estática Relocável
Tanto nos sistemas de alocação absoluta quanto nos de alocação relocável, os programas, normalmente, não preenchiam totalmente as partições onde eram carregados.
Se um programa for maior que qualquer partição livre, ele ficará aguardando uma que o acomode, mesmo que existam duas ou mais partições adjacentes que, somadas, totalizem o tamanho do programa.
![Page 28: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/28.jpg)
28
Gerenciamento de Memória
Alocação Particionada Estática Relocável
![Page 29: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/29.jpg)
29
Gerenciamento de Memória
Alocação Particionada Estática - FragmentaçãoFragmentação
Grande perda de memória não utilizada em suas diversas partições
![Page 30: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/30.jpg)
30
Gerenciamento de Memória
Alocação Particionada Dinâmica
![Page 31: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/31.jpg)
31
Gerenciamento de Memória
Alocação Particionada Dinâmica
A alocação particionada estática, analisada no item anterior, deixou evidente a necessidade de uma nova forma de organização para a memória principal, que diminuísse o problema da fragmentação e, conseqüentemente, aumentasse o grau de compartilhamento da memória.
Na alocação particionada dinâmica (ou variável), foi eliminado o conceito de partições de tamanho fixo.
Cada programa utilizaria o espaço de que necessitasse, passando esse pedaço a ser sua partição.
![Page 32: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/32.jpg)
32
Gerenciamento de Memória
Alocação Particionada Dinâmica
A fragmentação externa começará a ocorrer, realmente, quando os programas forem terminando e deixando espaços cada vez menores na memória, não permitindo o ingresso de novos programas. (Próxima Figura)
![Page 33: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/33.jpg)
33
Gerenciamento de Memória
FragmentaçãoFragmentação
![Page 34: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/34.jpg)
34
Gerenciamento de Memória
Alocação Particionada Dinâmica - FragmentaçãoFragmentação Existem duas soluções para fragmentação:
– Os espaços adjacentes são reunidos, produzindo um espaço de tamanho maior.
Atenção, aconteceu o término de execução do programa C
![Page 35: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/35.jpg)
35
Gerenciamento de Memória
Alocação Particionada Dinâmica - FragmentaçãoFragmentação– A segunda maneira de resolver o problema da fragmentação
envolve a relocação de todas as partições, eliminando os espaços entre elas e criando uma única área livre contígua.
![Page 36: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/36.jpg)
36
Gerenciamento de Memória
Estratégias para Escolha da Partição
– Os sistemas Operacionais implementam, basicamente, três
estratégias para determinar em qual partição livre um programa será carregado para execução. BEST-FIT, WORST-FIT e FIRST-FIT
– Essas estratégias tentam evitar, ou diminuir, o problema da fragmentação antes que ela ocorra.
– O sistema possuí uma lista de áreas livres (free list), com o endereço e tamanho de cada uma delas.
![Page 37: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/37.jpg)
37
Gerenciamento de Memória
Lista de áreas livres
Lista de áreas livres – controla as partições e sua disponibilidade.
![Page 38: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/38.jpg)
38
Gerenciamento de Memória
Best-fit
– Escolhe a melhor partição (best-fit), ou seja, aquela em que o programa deixa o menor espaço sem utilização.
– A lista de áreas livres está ordenada por tamanho, diminuindo o tempo de busca por uma área desocupada.
– Como é alocada a partição que deixa a menor área livre, a tendência é que cada vez mais a memória fique com pequenas áreas não contíguas, aumentando o problema da fragmentação.
![Page 39: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/39.jpg)
39
Gerenciamento de Memória
Best-fit
![Page 40: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/40.jpg)
40
Gerenciamento de Memória
Worst-fit
– Escolhe a pior partição (worst-fit), ou seja, aquela em que o programa deixa o maior espaço sem utilização.
– Deixa espaços livres maiores, para serem ocupados por outros programas, diminuindo o problema de fragmentação
![Page 41: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/41.jpg)
41
Gerenciamento de Memória
Worst-fit
![Page 42: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/42.jpg)
42
Gerenciamento de Memória
First-fit
– Escolhe a primeira partição (first-fit) livre, de tamanho suficiente para carregar o programa.
– A lista de áreas livres está ordenada por endereços crescentemente.
– Como o método tenta primeiro utilizar as áreas livres de endereços mais baixos, existe uma grande chance de se obter uma grande partição livre nos endereços de memória mais altos.
– Das três, a first-fit é a mais rápida, consumindo menos recursos do sistema.
![Page 43: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/43.jpg)
43
Gerenciamento de Memória
First-fit
![Page 44: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/44.jpg)
44
Gerenciamento de Memória
Swapping
![Page 45: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/45.jpg)
45
Gerenciamento de Memória
Swapping Mesmo com o aumento da eficiência da multiprogramação e,
particularmente, da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível.
A técnica swapping veio tentar resolver o problema da insuficiência de memória para todos os usuários.
Em todos os esquemas apresentados anteriormente, um programa permanecia na memória principal até o final da sua execução.
O sistema escolhe um programa residente, que é levado da memória para o disco (swap out), retornando posteriormente para a memória principal (swap in), como se nada tivesse ocorrido.
![Page 46: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/46.jpg)
46
Gerenciamento de Memória
Swapping
SWAP OUT SWAP IN
![Page 47: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/47.jpg)
47
Gerenciamento de Memória
Swapping Um dos problemas gerados pelo swapping é a relocação dos
programas. O loader relocável permite que um programa seja colocado em qualquer posição de memória, porém a relocação é realizada no momento do carregamento.
No caso de um programa que saia e volte muitas vezes para a memória, é necessário que a relocação seja realizada pelo loader de cada carregamento.
Torna o mecanismo ineficiente em função do tempo gasto para o carregamento.
A melhor solução para este problema é uma implementação do hardware dos computadores (MMU), para permitir que a relocação seja realizada durante a execução do programa. Esse tipo de mecanismo é denominado relocação dinâmica .
![Page 48: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/48.jpg)
48
Gerenciamento de Memória
Swapping
A relocação dinâmica é essencial para a implementação
de um sistema multiprogramável.
O conceito swapping permitiu um maior compartilhamento da memória e, conseqüentemente, um maior throughput.
![Page 49: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/49.jpg)
49
Gerenciamento de Memória
Localidade de Referência
![Page 50: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/50.jpg)
50
Gerenciamento de Memória
Localidade de Referência
A importância de se melhorar a localidade de dados está relacionado ao uso eficiente da hierarquia de memória. O princípio da localidade de referência diz que o dado usado mais recentemente tem grande probabilidade de ser acessado novamente num futuro próximo (localidade temporal).
Favorecendo-se o acesso a tais dados, aumenta-se o desempenho do sistema. Então, na medida do possível, os elementos recentemente acessados devem ser mantidos em memórias mais rápidas.
![Page 51: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/51.jpg)
51
Gerenciamento de Memória
Localidade de Referência
Devido ao fato de que memórias mais rápidas são menores, seu uso como memória de armazenamento dos dados de recente acesso, num nível próximo ao processador, e a utilização de memórias maiores (e mais lentas) em níveis mais distantes do processador, permite que se alcance um melhor compromisso entre custo e desempenho. Este tipo de organização é denominada de hierarquia de memória.
![Page 52: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/52.jpg)
52
Gerenciamento de Memória
Localidade de Referência – Formas de Localidade
Localidade temporal:
Itens referenciados no passado recente têm maior chance de serem novamente referenciados em um futuro próximo
![Page 53: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/53.jpg)
53
Gerenciamento de Memória
Localidade de Referência – Formas de Localidade
Localidade espacial:
Tendência em processos de acessar itens cujos endereços estão próximos. elementos em posições consecutivas da memória têm chance de serem acessados em sequência
![Page 54: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/54.jpg)
54
Gerenciamento de Memória
Relocação Dinâmica
![Page 55: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/55.jpg)
55
Gerenciamento de Memória
MMU (Memory Management Unit)
Dispositivo de hardware que transforma endereços virtuais em endereços físicos. Na MMU, o valor no registo de relocação é adicionado a todo o endereço lógico gerado por um processo do utilizador na altura de ser enviado para a memória. O programa do utilizador manipula endereços lógicos; ele nunca vê endereços físicos reais.
![Page 56: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/56.jpg)
56
Gerenciamento de Memória
MMU
Quando uma posição de memória é lida ou escrita, o hardware traduz o endereço gerado pelo programa ((o endereço de memória virtual ou lógico) em um endereço de memória real, normalmente diferente, (o endereço físico de memória).
A tradução é implementada pela MMU, que pode ser um módulo da CPU ou um circuito auxiliar em um chip interligado à CPU.
Endereço Lógico – gerado pela UCP.Endereço Físico – endereço visto pela unidade de memória.
![Page 57: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/57.jpg)
57
Gerenciamento de Memória
A MMU é o dispositivo de hardware responsável por mapear o endereço virtual para endereço físico.
Neste esquema o valor no registrador de relocação (próxima figura) é somado em cada endereço gerado pelo processo do usuário no momento em que ele é enviado para a memória ou, para o caso de leitura fazemos o processo inverso.
Lembre-se os programas sempre se referem a endereços lógicos (virtual) ele não vê os endereços físicos.
![Page 58: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/58.jpg)
58
Gerenciamento de Memória
Relocação Dinâmica
![Page 59: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/59.jpg)
59
Gerenciamento de Memória
Relocação
•O problema de determinados programas só rodarem em uma partição
passou a ser crítico, pois trazia uma grande ineficiência ao sistema.
•A técnica de relocação consiste na utilização de um registrador (registro de
relocação) como endereço base a partir do qual todos os endereços são
referenciados.
•O valor desse registrador é somado a todo endereço base gerado pelo
processo do usuário em execução.
![Page 60: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/60.jpg)
60
Gerenciamento de Memória
Relocação
![Page 61: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/61.jpg)
61
Gerenciamento de Memória
Memória Virtual
![Page 62: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/62.jpg)
62
Gerenciamento de Memória
Memória Virtual
A memória virtual é uma forma de permitir ao software utilizar mais memória que o computador possui fisicamente. Ela consiste de um conjunto de alterações no projeto do hardware combinadas a alterações no projeto do sistema operacional. Tecnicamente falando, ela permite ao programa executar em um espaço de memória cujo tamanho não é necessariamente limitado ao tamanho da memória física do computador, com a combinação das memórias principal e secundária.
![Page 63: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/63.jpg)
63
Gerenciamento de Memória
Memória Virtual
O conceito de memória virtual está baseado em desvincular o
endereçamento feito pelo programa dos endereços físicos da memória principal.
Os programas e suas estruturas de dados deixam de estar limitados ao tamanho da memória física disponível.
![Page 64: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/64.jpg)
64
Gerenciamento de Memória
![Page 65: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/65.jpg)
65
Gerenciamento de Memória
Espaço de Endereçamento Virtual Um programa no ambiente de memória virtual não faz
referência a endereços físicos de memória (endereços reais) , mas apenas a endereços virtuais.
No momento da execução de uma instrução, o endereço virtual é traduzido para um endereço físico, pois o processador acessa apenas posições da memória principal.
O mecanismo de tradução do endereço virtual para endereço físico é denominado mapeamento.
![Page 66: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/66.jpg)
66
Gerenciamento de Memória
Espaço de Endereçamento Virtual
O conjunto de endereços virtuais que os processos podem endereçar é chamado espaço de endereçamento virtual. Analogamente, o conjunto de endereços reais é chamado espaço de endereçamento real.
O espaço de endereçamento virtual não tem nenhuma relação direta com os endereços no espaço real.
Um programa pode fazer referência a endereços virtuais que estejam fora dos limites do espaço real, ou seja, os programas e suas estruturas de dados não estão mais limitados ao tamanho da memória física disponível.
![Page 67: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/67.jpg)
67
Gerenciamento de Memória
Espaço de Endereçamento Virtual
Os programas podem ser muito maiores que a memória física, apenas parte deles pode estar residente na memória em um determinado instante.
O sistema operacional utiliza a memória secundária como extensão da memória principal.
Quando o usuário desenvolve suas aplicações, ele ignora a existência dos endereços virtuais.
Os compiladores linkers se encarregam de gerar o código executável em função desses endereços, e o sistema operacional cuida dos detalhes de sua execução.
![Page 68: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/68.jpg)
68
Gerenciamento de Memória
![Page 69: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/69.jpg)
69
Gerenciamento de Memória
Mapeamento Deve existir um mecanismo que transforme os endereços
virtuais em endereços reais. Mapeamento permite ao sistema operacional traduzir um
endereço localizado no espaço virtual para um no espaço real. Como conseqüência do mapeamento, um programa não
precisa estar necessariamente contíguo na memória real para ser executado
Nos sistemas atuais, a tarefa de tradução é realizada por hardware, juntamente com o sistema operacional, de forma a não comprometer seu desempenho e torná-lo transparente a usuários e suas aplicações.
![Page 70: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/70.jpg)
70
Gerenciamento de Memória
Mapeamento Como a maioria das aplicações tende a fazer referência a um reduzido
número de páginas, somente uma pequena fração da tabela de páginas é realmente necessária.
Com base nesta realidade, foi introduzido um hardware especial para mapear endereços virtuais para endereços físicos sem a necessidade de acesso à tabela de páginas, chamando memória associativa ou translation lookside buffer (Cache da MMU).
Cada processo tem o mesmo espaço de endereçamento virtual, como se possuísse sua própria memória virtual.
O mecanismo de tradução se encarrega, então, de manter tabelas de mapeamento exclusivas para cada processo, relacionando os endereços virtuais do processo às suas posições na memória física.
![Page 71: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/71.jpg)
71
Gerenciamento de Memória
![Page 72: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/72.jpg)
72
Gerenciamento de Memória
Paginação Paginação é a técnica de gerência de memória onde o espaço
de endereçamento virtual e o espaço de endereçamento real são divididos em blocos do mesmo tamanho, chamados páginas.
As páginas no espaço virtual são denominadas páginas virtuais, as páginas no espaço real são chamadas de páginas reais ou frames (molduras).
Todo o mapeamento é realizado em nível de página, através de tabelas de páginas. Cada processo possui sua própria tabela
![Page 73: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/73.jpg)
73
Gerenciamento de Memória
![Page 74: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/74.jpg)
74
Gerenciamento de Memória
Paginação
Cada página virtual do processo possui uma entrada na tabela (entrada na tabela de ‘páginas - ETP), com informações de mapeamento que permitem ao sistema localizar a página real correspondente.
Quando um programa é executado, as páginas virtuais são transferidas da memória secundária para a memória principal e colocadas em frames.
Sempre que o programa fizer referência a um endereço virtual, o mecanismo de mapeamento localizará, na ETP da tabela do processo, o endereço físico do frame.
![Page 75: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/75.jpg)
75
Gerenciamento de Memória
Paginação
![Page 76: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/76.jpg)
76
Gerenciamento de Memória
Paginação
O endereço virtual é formado pelo número da página virtual (NPV) e um deslocamento dentro da página.
O NPV identifica, unicamente, uma página virtual na tabela de páginas (ETP)
O deslocamento funciona como seu índice. O endereço físico é calculado, então, somando-se o endereço do
frame localizado na tabela de páginas com o deslocamento contido no endereço virtual.
![Page 77: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/77.jpg)
77
Gerenciamento de Memória
Paginação
End.Físico = End.ETP + Deslocamento
![Page 78: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/78.jpg)
78
Gerenciamento de Memória
Page Fault
A ETP possui outras informações, entre elas o bit de validade, que indica se uma página está ou não na memória física (valid bit).
Se o bit tem o valor 0, indica que a página virtual não está na memória principal, enquanto, se for igual a 1, a página está localizada na memória.
Sempre que o processo faz referência a um endereço virtual, o sistema verifica, através do bit de validade, se a página que contém o endereço referenciado está ou não na memória principal.
Caso não esteja, o sistema tem de transferir a página da memória secundária para a memória física.Toda vez que o sistema é solicitado para isso, dizemos que ocorreu um page fault (falha de página).
![Page 79: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/79.jpg)
79
Gerenciamento de Memória
Page Fault
![Page 80: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/80.jpg)
80
Gerenciamento de Memória
Fragmentação x Paginação
Quando menor o tamanho da página menor será a fragmentação interna da memória.
Quando menor o tamanho da página, maior será a tabela de páginas, bem como maior será o acesso ao disco causando uma perda de desempenho bem razoável
![Page 81: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/81.jpg)
81
Gerenciamento de Memória
Política de Busca de Páginas
Determina quando uma página deve ser carregada para a memória
– Paginação por Demanda: somente a página solicitada é transferida para a memória
– Paginação Antecipada: páginas adjacentes ou prováveis de serem referenciadas são trazidas junto com a página referenciada.
![Page 82: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/82.jpg)
82
Gerenciamento de Memória
Working Set O mecanismo de memória virtual apesar de suas vantagens, introduz
um grande problema. Sempre que um processo faz referência a uma de suas páginas e esta
não se encontra na memória (page fault), exige do sistema operacional pelo menos uma operação de E/S, que, quando possível, deve ser evitada.
A taxa de page faults gerada por um programa depende de como a aplicação foi desenvolvida, além da política de gerência de memória implementada pelo sistema operacional.
Qualquer sistema que implementa paginação deve se preocupar em manter na memória principal um certo número de páginas que reduza ao máximo a taxa de paginação dos processos, ao mesmo tempo que não prejudique os demais processos que desejam ter acesso à memória.
![Page 83: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/83.jpg)
83
Gerenciamento de Memória
Working Set O working set é o conjunto de páginas constantemente
referenciadas pelo processo, devendo permanecer na memória principal para que execute de forma eficiente.
![Page 84: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/84.jpg)
84
Gerenciamento de Memória
Realocação de Páginas O maior problema na gerência de memória virtual por
paginação não é decidir que página carregar para a memória, mais quais páginas remover.
Quando o limite do working set de um processo é alcançado, e este necessita de novos frames, o sistema operacional deve intervir e escolher, entre as diversas páginas do seu working set, quais as páginas que devem ser liberadas.
Qualquer estratégia de realocação de páginas deve considerar se uma página foi ou não modificada, antes de liberá-la para outro processo.
![Page 85: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/85.jpg)
85
Gerenciamento de Memória
Realocação de Páginas
Sempre que o sistema liberar uma página desse tipo, ele antes deverá gravá-la na memória secundária (page out), preservando seu conteúdo.
O sistema mantém um arquivo de paginação (page file) onde as páginas modificadas são armazenadas.
Sempre que uma destas páginas for novamente referenciada, ela será trazida novamente para o working set do processo (page in).
![Page 86: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/86.jpg)
86
Gerenciamento de Memória
Realocação de Páginas
![Page 87: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/87.jpg)
87
Gerenciamento de Memória
Principais Algoritmos para a Realocação de Páginas:
Aleatória FIFO (First in First Out) LRU (Last Recently Used) NRU (Not Recently Used) LFU (Least Frequently Used)
![Page 88: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/88.jpg)
88
Gerenciamento de Memória
Aleatória
Não utiliza critério algum de seleção. Todas as páginas do working set têm a mesma chance de ser
selecionadas, inclusive as páginas que são freqüentemente referenciadas.
Apesar de ser uma estratégia que consome poucos recursos do sistema, é raramente utilizada.
![Page 89: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/89.jpg)
89
Gerenciamento de Memória
First-In-First-Out (FIFO)
A página que primeiro foi utilizada (first-in) será a primeira a
ser escolhida (first-out). Sua implementação é bastante simples, sendo necessária
apenas uma fila , onde as páginas mais antigas estão no início da fila e as mais recentes no final.
Caso uma página seja constantemente referenciada, como é o caso de páginas de utilitários do sistema, o fator tempo se torna irrelevante, e o sistema tem de fazer retornar a mesma página várias vezes.
![Page 90: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/90.jpg)
90
Gerenciamento de Memória
Last-Recently-Used (LRU) Seleciona a página utilizada menos recentemente (least-
recently-used). Substitui a página na memória cuja última referência é a mais
antiga, ou seja, as páginas referenciadas a mais tempo serão referenciadas em futuro próximo.
Apesar de ser uma boa estratégia, é pouco implementada devido ao grande overhead causado pela atualização, em cada página referenciada, do momento do último acesso, além do algoritmo de busca dessas páginas.
![Page 91: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/91.jpg)
91
Gerenciamento de Memória
Not-Recently-Used (NRU)
A escolha da página que não foi recentemente utilizada (not-recently-
used) é bastante semelhante ao esquema LRU. Existe um flag, que permite ao sistema a implementação do algoritmo. O flag de referência indica quando a página foi referenciada ou não, e
está associado a cada entrada na tabela de páginas. Inicialmente, todas as páginas estão com o flag indicando que não
foram referenciadas (0). À medida que as páginas são referenciadas, o flag associado a cada
página é modificado pelo hardware (1). Depois de um certo tempo, é possível saber quais páginas foram
referenciadas ou não.
![Page 92: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/92.jpg)
92
Gerenciamento de Memória
Least-Frequently-Used (LFU)
A página menos referenciada, ou seja, a menos freqüentemente
utilizada (least-frequently-used) será a página escolhida. É mantido um contador do número de referência feitas às páginas. A página que tiver o contador com o menor número de referências
será a página escolhida. O algoritmo privilegia, ou seja, mantém na memória, as páginas que
são bastante utilizadas. Porém, as páginas que entrarem mais recentemente no working set
serão, justamente, aquelas que estarão com os contadores com menos valor.
![Page 93: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/93.jpg)
93
Gerenciamento de Memória
Segmentação
![Page 94: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/94.jpg)
94
Gerenciamento de Memória
Tamanho de Página
O problema da fragmentação também existe em sistemas com
paginação, só que em menor escala, se comparada com a de outras organizações já apresentadas.
O programa ocupa quase que integralmente todas as páginas. A fragmentação só é encontrada, realmente, na última página,
quando o código não a ocupa por completo. O tamanho da página está associado ao hardware e varia de
sistema para sistema. A maioria dos estudos em relação ao tamanho ideal de página
indica páginas de tamanho pequeno.
![Page 95: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/95.jpg)
95
Gerenciamento de Memória
Segmentação
Segmentação é a técnica de gerência de memória, onde os
programas são divididos logicamente em sub-rotinas e estruturas de dados e colocados em blocos de informações na memória.
Os blocos têm tamanhos diferentes s são chamados segmentos, cada um com seu próprio espaço de endereçamento.
A grande diferença entre a paginação e a segmentação é que, enquanto a primeira divide o programa em partes de tamanho fixo, sem qualquer ligação com a estrutura do programa, a segmentação permite uma relação entre a lógica do programa e sua divisão na memória.
![Page 96: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/96.jpg)
96
Gerenciamento de Memória
Segmentação
![Page 97: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/97.jpg)
97
Gerenciamento de Memória
Segmentação O mecanismo de mapeamento é muito semelhante ao de paginação. Os segmentos são mapeados através de tabelas de mapeamento de
segmento (TMS), e os endereços são compostos pelo número do segmento e um deslocamento dentro do segmento.
O número de segmento identifica unicamente uma entrada na tabela de segmentos (ETS), onde estão as informações sobre o segmento na memória real.
O endereço absoluto é calculado a partir do endereço inicial do segmento mais o deslocamento dentro do segmento.
Além do endereço do segmento na memória física, cada entrada na tabela de segmentos possui informações sobre o tamanho do segmento, se ele está ou não na memória e sua proteção.
![Page 98: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/98.jpg)
98
Gerenciamento de Memória
Segmentação O sistema operacional mantém uma tabela com áreas livres e
ocupadas da memória. Quando um novo processo é carregado para a memória, o
sistema localiza um espaço livre que o acomode. As estratégias para escolha da área livre podem ser as
mesmas utilizadas no item Alocação Particionada Dinâmica, ou seja, best-fit, worst-fit ou first-fit.
Na segmentação, apenas os segmentos referenciados são transferidos da memória secundária para a memória real.
Logo, para serem mais eficientes, os programas devem estar bem modularizados.
![Page 99: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/99.jpg)
99
Gerenciamento de Memória
Segmentação
Se as aplicações não estiverem divididas em módulos, grandes pedaços de código estarão na memória desnecessariamente, não permitindo que outros usuários, também, utilizem a memória.
O problema da fragmentação também ocorre nesse modelo, quando as áreas livres são tão pequenas, que não acomodam nenhum segmento que necessite ser carregado.
Um outro problema é sua complexidade, pois o sistema deve manter tabelas de segmentos que variam de acordo com o número de segmentos.
![Page 100: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/100.jpg)
100
Gerenciamento de Memória
Proteção Em qualquer sistema multiprogramável, deve existir um mecanismo
que proteja o espaço de memória de cada processo e, principalmente, a área do sistema operacional.
No esquema de memória virtual, cada processo tem sua tabela de mapeamento, e a tradução dos endereços é realizada pelo sistema.
Assim, é impossível que um processo tenha acesso a áreas de memória de outros processos, a menos que haja compartilhamento explícito de páginas/segmentos.
A proteção é necessária para impedir que um processo, ao acessar uma página/segmento do sistema, a modifique ou mesmo tenha acesso a ela.
![Page 101: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/101.jpg)
101
Gerenciamento de Memória
Swapping em Memória Virtual
![Page 102: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/102.jpg)
102
Gerenciamento de Memória
Swapping em Memória Virtual O conceito de swapping continua válido quando aplicado à memória
virtual. Quando existem novos processos que desejam ser processados e
não existe memória real suficiente, o sistema seleciona um ou mais processos que deverão sair da memória para ceder espaço aos novos processos.
Há vários critérios que podem ser aplicados na escolha do(s) processo(s) que deve(m) sair da memória.
Os mais utilizados são a prioridade e o estado do processo. O critério de estado seleciona os processos que estão no estado de
espera, ou seja, aguardando por algum evento. O critério de prioridade escolhe, entre os processos, os d menor
prioridade de execução.
![Page 103: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/103.jpg)
103
Gerenciamento de Memória
Thrashing
![Page 104: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/104.jpg)
104
Gerenciamento de Memória
Thrashing
Thrashing pode ser definido como sendo a excessiva
transferência de páginas/segmentos entre a memória principal e a memória secundária.
Esse problema se aplica tanto a sistemas que implementam paginação como segmentação.
![Page 105: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/105.jpg)
105
Questões
Um usuário observou que determinado computador com 32 MB de memória RAM leva mais tempo que outros computadores para executar alguns aplicativos. Verificou também que o computador acessa o disco rígido com mais freqüência que os outros. Nessa situação, é possível que a instalação de uma quantidade maiorde memória RAM melhore o desempenho desse computador.
Na hierarquia de tecnologias de memória, que inclui registradores, memória principal, cache e discos, verifica-se que quanto maior a capacidade de armazenamento, maior o tempo de acesso.
CERTO
ERRADO
![Page 106: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/106.jpg)
106
Questões
O compartilhamento de memória, que inclui registradores, memória principal, cache e discos, em qualquer nível da hierarquia de memória, gera o problema de que um programa enderece o espaço de memória de outro programa
Memória virtual é uma funcionalidade que permite aos programas endereçar a memória de um ponto de vista lógico, sem considerar a quantidade de memória principal disponível fisicamente.
CERTO
CERTO
![Page 107: Gerencia de Memoria (1)](https://reader036.vdocuments.pub/reader036/viewer/2022062319/55721156497959fc0b8ecc39/html5/thumbnails/107.jpg)
107
Questões
Em um ambiente com memória virtual, quando um processo faz referência a um endereço virtual de dados que não estão na memória principal, então, sem suspender a execução desse processo, o sistema operacional deve entrar em ação para trazer esses dados da memória secundária para a memória principal. ERRADO