A memória virtual está sempre disponível?

0

Principles of virtual memory:

The idea of virtual memory is to create a virtual address space that doesn't correspond to actual addresses in RAM. The system stores the official copy of memory on disk and caches only the most frequently used data in RAM. To make this workable, we break virtual memory into chunks called pages; a typical page size is four kilobytes. We also break RAM into page frames, each the same size as a page, ready to hold any page of virtual memory.

Estou executando um sistema Linux e a área de troca está vazia, porque há espaço suficiente na memória principal. Dito isto, existe ainda uma memória virtual com páginas e os processos de vontade continuarão a ter endereços virtuais em vez dos endereços físicos de seus segmentos na memória principal?

E se não houver uma área de troca no disco, existe uma memória virtual no sistema também?

Em palavras simples, a memória virtual está sempre disponível em um sistema Linux e o processo sempre terá endereços virtuais?

    
por direprobs 04.07.2017 / 20:56

1 resposta

1

A memória virtual (paginação) é ativada no nível da CPU. Isso significa que a CPU usa a MMU para converter o endereço virtual (como visto pelo aplicativo) em endereço físico. A memória é dividida em páginas. A página pode ser carregada na memória ou carregada no disco. Se a página estiver no disco, o acesso a esta página resultará em uma falha de página processada pelo SO (o SO carrega a página do disco).

Então, se você não tem swap, você ainda tem memória virtual, a CPU ainda usa MMU e divide a memória em páginas, mas o SO não pode mover a página para o disco.

link

    
por 04.07.2017 / 21:01