Você está na página 1de 19

Universidade Cruzeiro do Sul

Memória Virtual

Sistemas Operacionais

Evandro José Silveira RGM: 22232265


Leonardo Pereira RGM: 21934126
Lucas Silveira Ferreira RGM: 22232354
Miriã Alves RGM: 22363475
Walyson Renan Ventura RGM: 22351701
Sumário

1. Introdução

1.1 Objetivo
1.2 Justificativa
1.3 Metodologia
1.4 Contribuições

2. Tema

3. Trabalhos Relacionados

4. Conclusões

5. Referências
Introdução:

A memória virtual consiste em um espaço que é reservado quando o


sistema operacional é instalado em um computador. Essa ação independe
do fato do SO ser (Linux ou Windows). Ou seja, a memória virtual pode
ser considerada uma reserva da memória RAM ela estende a quantidade de
memória disponível para dados temporários. Estes costumam ser usados
pelos programas em execução. Com isso, o usuário não precisa realizar
upgrades de hardware para usar vários aplicativos simultaneamente, e é
também conhecida como arquivos de paginação. A Importância da
memória virtual é para o SO perceber que a memória RAM está sem
espaço, ele passa a executar os programas nela. Ou seja, a memória virtual
pode ser considerada uma reserva da memória RAM.
Objetivo

A memória principal pode agir como uma cache para o armazenamento


secundário. E permitir o compartilhamento seguro e eficiente da memória
entre vários programas.

Quando um grupo de programas são executados ao mesmo tempo em um


computador, a memória total exigida por todos os programas pode ser
muito maior do que a quantidade de memória principal. Usando memória
virtual, o computador endereça mais memória principal do que ele
realmente possui e usa o disco rígido para conter o excedente, está área do
disco é chamada de arquivo de páginas, pois contém porções da memória
principal. Os arquivos de páginas contêm as partes que não estão sendo
utilizadas no momento e existem dois mecanismos principais para
implementação da memória virtual: paginação e segmentação.

Na paginação a memória física é dividida em blocos de bytes contínuos


denominados molduras de páginas (page frames). Por sua vez, o espaço de
memória de um processo, contendo as instruções e dados do programa, é
dividido em páginas que são fisicamente armazenadas nas molduras e
possuem o mesmo tamanho destas.

Na segmentação existem vários espaços de endereçamento para cada


aplicação (os segmentos). Neste caso, o endereçamento consiste em um par
ordenado deslocamento, onde o deslocamento é a posição do byte dentro
do segmento
Justificativa
Cada processo no espaço de usuário executa no seu próprio espaço de
memória virtual e exceto se requisitado, não pode acessar a memória de
outro processo. Essa é a base de proteção de memória nós principais
sistemas operacionais de hoje. Dependendo do privilégio, os processos
podem requisitar ao núcleo o mapeamento de parte de outros espaços de
memória de processos para seus os seus próprios como é o caso de
depuradores. Os programas podem inclusive requisitar áreas de memórias
compartilhadas com outras processos

Uma outra abordagem de sistemas operacionais experimentais é ter um


único espaço de endereçamento para todos os softwares e invocar a
linguagem de programação da máquina virtual.

Metodologia
A Memória virtual é uma técnica que usa a memória secundária como um
cache para armazenamento secundário. Houve duas motivações principais:
permitir o compartilhamento seguro e eficiente da memória entre vários
programas e remover os transtornos de programação de uma quantidade
pequena e limitada na memória principal.

A memória virtual consiste em recursos de Hardware e software com três


funções:

 Realocação: para assegurar que cada processo tenha o seu próprio


espaço de gerenciamento começando em zero.

 Proteção: para impedir que um processo que utilize um endereço


que não ilhe pertença.
 Paginação ou troca: que possibilita a uma aplicação utilizar mais
memória do que fisicamente existente (essa é a função mais
conhecida).

Simplificadamente, um usuário ou programador vê um espaço


endereçamento virtual, que pode ser igual, maior ou menor que a memória
física (normalmente chamada memória DRAM)

Contribuições

A técnica de memória virtual foi inicialmente desenvolvida nos anos de


1959 a 1962, na Universidade Manchester, Inglaterra, para o computador
Atlas. E antes da criação da memória virtual gerenciada pelo sistema
operacional, os próprios programas eram responsáveis por realizarem o
gerenciamento da informação, utilizando a memória principal e os
dispositivos de armazenamento de acordo com a necessidade inerente ao
próprio programa. A principal motivação para a criação da memória virtual
foi o pensamento de se proporcionar aos desenvolvedores de programas um
recurso mais facilitado de utilização da memória do computador, ou seja,
um computador com uma memória principal menor que o tamanho de todo
o tamanho utilizado pelo programa a ser executado.

Fonte:http:/
/hostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO_Aula09_Gerenciamento%20da%20memoria%20virtual.pdf

A princípio, é preciso entender que tudo o que é feito no computador


consome uma determinada quantidade de memória, Esta memória chama-
se RAM e permite que o sistema operacional (SO) funcione, Ou seja, ela
viabiliza que um jogo rode ou que o usuário consiga escrever um texto por
exemplo, Teoricamente quanto mais memória RAM o computador tiver,
maior a quantidade de programas ele vai conseguir rodar ao mesmo tempo,
RAM significa Memória de Acesso Aleatório (do inglês Randon Access
Memory) Considerando que a memória RAM está fadada a acabar, é
natural considerar a possibilidade de usar somente a memória virtual,
Afinal para isso bastaria utilizar o HD do computador para salvar os dados
temporários, No entanto na prática, isso não funcionaria da forma desejada
Sempre que um programa usa toda a capacidade da memória RAM, o SO
passa a usar a memória virtual Ou seja, ela funciona como um escape para
que o usuário possa continuar realizando suas atividades no computador, a
memória virtual utiliza um pedaço do HD. Com isso, ela transfere partes da
memória RAM para o disco rígido, viabilizando o acesso a mais memória
RAM para a execução de programas, contudo esse recurso só é
disponibilizado quando o computador está no seu limite ou quando o
usuário está usando programas mais pesados

Trabalhos Relacionados

Os sistemas operacionais modernos, como Windows, aplicativos e vários


sistema processos sempre referenciarem memória usando endereços de
memória virtual. Endereços de memória virtual são automaticamente
convertidos para endereços de (memória RAM) reais pelo hardware.
Apenas as partes principais do kernel do sistema operacional ignoram esta
tradução de endereço e usam endereços de memória real diretamente.

Memória virtual sempre está sendo usada, mesmo quando a memória é


necessária para todos os processos em execução não exceder o volume de
memória RAM instalada no sistema.
Todos os processos (por exemplo, aplicativos executáveis) que executam
versões de 32 bits do Windows são atribuídos endereços de memória
virtual (um espaço de endereço virtual), que varia de 0 a

4.294.967.295 (2 * 32-1 = 4 GB), independentemente do quanto de RAM é


realmente instalado no computador.

Na configuração padrão do Windows, 2 gigabytes (GB) de espaço de


endereço virtual são designados para o uso particular de cada processo e 2
GB é compartilhada entre todos os processos e o sistema operacional.
Normalmente, os aplicativos (por exemplo, o bloco de notas, Word, Excel e
Acrobat Reader) usam apenas uma fração de 2 GB de espaço de endereço
particular. O sistema operacional atribui quadros da página de RAM apenas
para essas páginas de memória virtual que estão sendo usadas.

Extensão de endereço físico (PAE) é o recurso da arquitetura Intel de 32


bits que expande o endereço de memória física (RAM) até 36 bits. PAE
não altera o tamanho do espaço de endereço virtual (o que continua a 4
GB), mas o volume de RAM real que pode ser endereçado pelo
processador. Para obter mais informações, clique no número de artigo a
seguir para visualizar o artigo na Base de Dados de Conhecimento da
Microsoft:

268363 Intel extensão de endereço físico (PAE) no Windows 2000

A tradução entre o endereço de memória virtual de 32 bits que é usado pelo


código que está sendo executado em um processo e o endereço de memória
RAM de 36 bits é manipulada automaticamente e transparente, o hardware
do computador de acordo com as tabelas de conversão que são mantidos
pelo sistema operacional. Qualquer página de memória virtual (endereço de
32 bits) pode ser associada a qualquer página de RAM física (endereço de
36 bits).

A lista a seguir descreve a quantidade de RAM suportam a várias versões


do Windows e edições (a partir de maio de 2010):

Windows NT 4.0 4 GB

Windows 2000 Professional 4 GB

Windows 2000 Standard Server 4 GB

O Windows 2000 Advanced Server 8 GB

O Windows 2000 Datacenter Server 32 GB

Windows XP Professional 4 GB

Windows Server 2003 Web Edition 2 GB

Windows Server 2003 Standard Edition 4 GB

Windows Server 2003 Enterprise Edition 32 GB

Windows Server 2003 Datacenter Edition 64 GB

Windows Vista 4 GB

Windows Server 2008 Standard 4 GB

Windows Server 2008 Enterprise 64 GB

O Windows Server 2008 Datacenter 64 GB

Windows 7 4 GB
RAM é um recurso limitado, enquanto que para fins práticos, a memória
virtual é ilimitada. Pode haver muitos processos e cada processo possui seu
próprio 2 GB de espaço de endereço virtual particular. Quando a memória
está sendo usada por todos os processos existentes excede a RAM
disponível, o sistema operacional move páginas (partes de 4 KB) de um ou
mais espaços de endereço virtual para o disco rígido do computador. Isso
libera quadro RAM para outros usos. Nos sistemas Windows, essas páginas
"tiradas" são armazenadas em um ou mais arquivos (Pagefile. sys) na raiz
de uma partição. Cada partição do disco pode ser um arquivo. O local e o
tamanho do arquivo de página é configurado nas Propriedades do
sistema (clique em Avançado, clique em desempenhoe, em seguida, clique
no botão configurações ).

Os usuários freqüentemente perguntam "de qual tamanho devo criar o


arquivo de paginação?" Não há uma resposta única a esta pergunta porque
isso depende da quantidade de RAM instalada e quanta memória virtual
requer essa carga de trabalho. Se não houver nenhuma outra informação
disponível, a recomendação típica de 1,5 vezes a RAM instalada é um bom
ponto de partida. Em sistemas de servidor, você geralmente deseja ter
RAM suficiente para que nunca haja uma falta de e para que o arquivo de
paginação não é usado basicamente. Nesses sistemas, ele pode servir
nenhuma finalidade útil para manter um arquivo de paginação muito
grande. Por outro lado, se houver bastante espaço de disco, mantendo um
grande arquivo de paginação (por exemplo, 1,5 vezes a RAM instalado)
não causa um problema e isso também elimina a necessidade de se
preocupar sobre como grande para torná-lo.

Em qualquer sistema de computador, à medida que a carga aumenta (o


número de usuários, o volume de trabalho), o desempenho diminui, mas de
uma maneira não-linear. Qualquer aumento na carga ou demanda, além de
um determinado ponto, causa uma diminuição significativa no
desempenho. Isso significa que algum recurso está com baixo fornecimento
e tornou-se um gargalo.

Em algum momento, o recurso que está com baixo fornecimento não pode
ser aumentado. Isso significa que foi atingido um limite da arquitetura.
Alguns limites de arquiteturais com frequência reportadas no Windows
incluem o seguinte:

 2 GB de espaço de endereço virtual compartilhado para o sistema


(kernel)

 2 GB de espaço de endereço virtual particular por processo (modo de


usuário)

 660 MB do sistema armazenamento PTE (Windows Server 2003 e


versões anterior)

 470 MB de armazenamento de memória paginável (Windows Server


2003 e versões anterior)

 256 MB de armazenamento de pool não-paginável (Windows Server


2003 e versões anterior)

Isso se aplica especificamente para o Windows Server 2003, mas isso


também poderão ser aplicáveis ao Windows XP e Windows 2000. No
entanto, o Windows Vista, Windows Server 2008 e Windows 7 não todos
compartilham esses limites de arquiteturais. Os limites de usuário e a
memória do kernel (números 1 e 2 aqui) são os mesmos, mas recursos de
kernel como PTEs e vários pools de memória são dinâmicos. Esse novo
recurso permite memória paginada e não paginada. Isso também permite
PTEs e sessão de pool a crescer além dos limites que foram abordados
anteriormente, até o ponto onde o kernel inteiro seja esgotado.

Instruções frequentemente encontradas e entre aspas, como a seguir:


Com um servidor de Terminal, 2 GB de espaço de endereço compartilhado
será completamente usado antes de 4 GB de RAM é usado."

Isso pode acontecer em alguns casos. No entanto, você precisa monitorar


seu sistema para saber se eles se aplicam a seu sistema específico ou não.
Em alguns casos, essas declarações são conclusões de ambientes
específicos do Windows NT 4.0 ou Windows 2000 e não necessariamente
se aplicam ao Windows Server 2003. Alterações significativas foram feitas
para o Windows Server 2003 para reduzir a probabilidade de que esses
limites de arquiteturais na verdade seja atingidos na prática. Por exemplo,
alguns processos que estavam no kernel foram movidos para processos do
kernel não para reduzir a memória usada no espaço de endereço virtual
compartilhado.

Desempenho do sistema é a ferramenta de princípio para monitorar o


desempenho do sistema e identificar a localização do gargalo. Para iniciar o
Monitor de desempenho, clique em Iniciar, clique em Painel de controle,
clique em Ferramentas administrativase, em seguida, clique duas vezes
em Monitor de desempenho. Aqui está um resumo de alguns contadores
importantes e o que eles dirão:

 Memória, Bytes confirmados: Este contador é uma medida da


demanda para a memória virtual.

Mostra o número de bytes alocado por processos e para o qual o


sistema operacional foi confirmada um quadro de página de memória
RAM ou um slot de página do arquivo de paginação (ou talvez ambos).
Como Bytes confirmados cresce maior do que a RAM disponível,
paginação aumentará e também aumentará o tamanho do arquivo de
paginação que está sendo usado. Em algum momento, a atividade de
paginação começa a afetar significativamente o desempenho.

 Processo, conjunto de trabalho, total: esse contador é uma medida da


memória virtual em uso "ativo".

Esse contador mostra a quantidade de RAM é necessário para que a


memória virtual está sendo usada para todos os processos estiver na
RAM. Esse valor é sempre um múltiplo de 4.096, que é o tamanho de
página é usado no Windows. Como a demanda para aumentos de
memória virtual além da RAM disponível, o sistema operacional ajusta
a quantidade de memória virtual de um processo está em seu conjunto
de trabalho para otimizar o uso da memória RAM disponível e
minimizar a paginação.

 Arquivo de paginação, arquivo de paginação % em uso: Este


contador é uma medida de quanto o arquivo de paginação está
realmente sendo usada.
Use este contador para determinar se o arquivo de paginação é um
tamanho adequado. Se este contador atingir 100, o arquivo de
paginação está cheio e coisas deixarão de funcionar. Dependendo a
volatilidade de sua carga de trabalho, provavelmente deseja que o
arquivo de paginação grande suficiente para que ele seja geralmente
não mais que 50-075% usado. Se grande parte do arquivo de paginação
estiver sendo usado, ter mais de um em discos físicos diferentes, pode
melhorar o desempenho.

 Memória, páginas/s: Este contador é uma das medidas mais mal


compreendidas.
Um valor alto para esse contador não implica necessariamente que seu
afunilamento de desempenho origina-se da falta de RAM. O sistema
operacional usa o sistema de paginação para fins que não sejam de
troca de páginas devido a sobreposição de memória.

 Memória, saída de páginas/seg: Este contador mostra quantas


páginas de memória virtual foram gravadas para o arquivo de
paginação livre quadros da página de RAM para outras finalidades por
segundo.

Este é o melhor contador para monitorar se você suspeitar de


paginação é o gargalo de desempenho. Mesmo se Bytes confirmados é
maior do que a RAM instalado, se saída de páginas/s for inferior ou
igual a zero na maioria das vezes, não há nenhum problema de
desempenho significativa de RAM insuficiente.

 Memória Bytes de Cache


Memória, bytes de memória não-paginável
Memória, Bytes de Pool paginável
Memória, Bytes de código do sistema Total,
Memória, Total de Bytes de Driver do sistema:
A soma desses contadores é uma medida da quantidade de 2 GB da
parte compartilhado do espaço de endereço virtual de 4 GB está
realmente sendo usada. Usá-los para determinar se o seu sistema está
chegando os arquiteturais limites discutidos que foram abordados
anteriormente.

 Memória, MBytes disponíveis: esse contador mede a quantidade de


RAM disponível atender às demandas de memória virtual (tanto as
novas alocações, ou para restaurar uma página a partir do arquivo de
paginação).
Quando a memória RAM é resumindo fonte (por exemplo, Bytes
confirmados é maior do que a RAM instalado), o sistema operacional
tentará manter uma determinada fração de RAM instalado disponível
para uso imediato, copiando páginas de memória virtual que não estão
em uso ativo para o arquivo de paginação. Portanto, este contador não
atingirá zero e não é necessariamente uma boa indicação se o sistema
está sem memória RAM.

Pesquisa realizada pela https://support.microsoft.com/pt-


br/help/2160852/ram-virtual-memory-pagefile-and-memory-management-
in-windows
Conclusão
Quando um grupo de programas são executados ao mesmo tempo em um
computador, a memória total exigida por todos os programas pode ser
muito maior do que a quantidade de memória principal.

Usando memória virtual, o computador endereça mais memória principal


do que ele realmente possui e usa o disco rígido para conter o excedente,
está área do disco é chamada de arquivo de páginas, pois contém porções
da memória principal.

Por sua vez, o espaço de memória de um processo, contendo as instruções e


dados do programa, é dividido em páginas que são fisicamente
armazenadas nas molduras e possuem o mesmo tamanho destas.

Dependendo do privilégio, os processos podem requisitar ao núcleo o


mapeamento de parte de outros espaços de memória de processos para seus
os seus próprios como é o caso de depuradores.

Os programas podem inclusive requisitar áreas de memórias


compartilhadas com outras processos Uma outra abordagem de sistemas
operacionais experimentais é ter um único espaço de endereçamento para
todos os softwares e invocar a linguagem de programação da máquina
virtual. A Memória virtual é uma técnica que usa a memória secundária
como um cache para armazenamento secundário.

Houve duas motivações principais: permitir o compartilhamento seguro e


eficiente da memória entre vários programas e remover os transtornos de
programação de uma quantidade pequena e limitada na memória principal.
E antes da criação da memória virtual gerenciada pelo sistema operacional,
os próprios programas eram responsáveis por realizarem o gerenciamento
da informação, utilizando a memória principal e os dispositivos de
armazenamento de acordo com a necessidade inerente ao próprio
programa.

A principal motivação para a criação da memória virtual foi o pensamento


de se proporcionar aos desenvolvedores de programas um recurso mais
facilitado de utilização da memória do computador, ou seja, um
computador com uma memória principal menor que o tamanho de todo o
tamanho utilizado pelo programa a ser executado. A princípio, é preciso
entender que tudo o que é feito no computador consome uma determinada
quantidade de memória, Esta memória chama-se RAM e permite que o
sistema operacional (SO) funcione, Ou seja, ela viabiliza que um jogo rode
ou que o usuário consiga escrever um texto por exemplo, Teoricamente
quanto mais memória RAM o computador tiver, maior a quantidade de
programas ele vai conseguir rodar ao mesmo tempo, RAM significa
Memória de Acesso Aleatório (do inglês Randon Access Memory)
Considerando que a memória RAM está fadada a acabar, é natural
considerar a possibilidade de usar somente a memória virtual, Afinal para
isso bastaria utilizar o HD do computador para salvar os dados temporários,
No entanto na prática, isso não funcionaria da forma desejada Sempre que
um programa usa toda a capacidade da memória RAM, o SO passa a usar a
memória virtual Ou seja, ela funciona como um escape para que o usuário
possa continuar realizando suas atividades no computador, a memória
virtual utiliza um pedaço do HD.

Com isso, ela transfere partes da memória RAM para o disco rígido,
viabilizando o acesso a mais memória RAM para a execução de programas,
contudo esse recurso só é disponibilizado quando o computador está no seu
limite ou quando o usuário está usando programas mais pesados.

Isso porque a principal diferença entre a memória RAM e a memória


virtual é a velocidade de acesso às informações O processo de leitura e
escrita de arquivos no HD é muito mais lento do que ocorre na memória
RAM Ou seja, acessar informações gravadas na memória virtual é mais
demorado do que na memória RAM, Inclusive é importante frisar que, ao
passar da RAM para a memória virtual, haverá uma queda no desempenho
do computador de forma geral O problema é que o HD é muito mais lento
que a memória RAM, Enquanto um simples módulo DDR2-533 (PC2-
4200) comunica-se com o processador a uma velocidade teórica de 4200
megabytes por segundo, a velocidade de leitura sequencial dos HDs atuais
(situação em que o HD é mais rápido) dificilmente ultrapassa a marca dos
100 MB/s.

Referências
https://support.microsoft.com/pt-br/help/2160852/ram-virtual-memory-pagefile-and-memory-
management-in-windows

https://www.hardware.com.br/termos/memoria-virtual

https://www.youtube.com/watch?
v=Q8ZqjEafmNc&list=PLxI8Can9yAHeK7GUEGxMsqoPRmJKwI9Jw&index=19&t=1s

https://www.infonova.com.br/artigo/o-que-e-a-memoria-virtual/

http://hostel.ufabc.edu.br/~marcelo.nascimento/BC1518Q3/aulas/ufabc_SO_Aula09_Gerenciam
ento%20da%20memoria%20virtual.pdf

https://www.cos.ufrj.br/~vitor/aulas/COS773/slides/aulas_8.html

https://homepages.dcc.ufmg.br/~scampos/cursos/so/aulas/aula14.html

Você também pode gostar