Compreendendo mapas de memória

0

Os mapas de memória permitem que as páginas sejam "desbotadas" em vários processos, para que vários processos possam acessá-los. Explique como o sistema operacional pode lidar com isso com paginação?

    
por user298152 04.07.2018 / 01:00

2 respostas

1

A CPU tem uma unidade de gerenciamento de memória. Ele mapeia o endereço de memória virtual para endereços de memória física. Isso é feito procurando mapeamentos em uma tabela. Essas entradas são armazenadas em cache em um buffer de lookaside de tradução (TLB) . Cada processo tem seu próprio mapeamento.

Se dois processos compartilharem alguma memória física, o SO mapeará parte da memória virtual do processo A para essa memória física e mapeará parte da memória virtual do processo B para essa mesma memória física. Eles não precisam estar no mesmo endereço virtual nos dois processos.

    
por 04.07.2018 / 01:59
0

Memória virtual não existe, portanto, o nome virtual. A memória virtual é apenas endereços de memória (números de 32 ou 64 bits) que o processo vê e usa, e pode apontar para a memória de hardware real.

A memória de hardware para a qual ela aponta já pode ser usada por outro processo, portanto, é possível compartilhar a memória entre os processos dessa maneira e isso é feito muito.

Há também um mecanismo que pode detectar o acesso ao processo a uma região de memória virtual específica, que pode "fazer coisas" logo antes de você realmente acessar o endereço. Pode mapear em alguma memória de hardware para esse local, por exemplo, ou matar seu processo por se comportar mal.

Tudo isso é feito com páginas, blocos de espaço de endereço com função e tamanho predefinidos. O tamanho do bloco é muitas vezes fixo e pode ser de 1 a 16 kilobytes (dependendo do processador).

    
por 04.07.2018 / 11:41