Gerenciamento de memória virtual (linux)
Em uma pesquisa feita recentemente sobre o método de gerenciamento de memória virtual, foi feita o resumo abaixo, não leve ele como uma referência didática e sim como um idéia de como é feito o gerenciamento, como exemplo dele, temos o sistema operacional Linux.
Para quem não sabe e lembrando quem já sabe, o gerenciamento da memória é o que torna o sistema operacional mais rápido e funcional.
Memória Virtual
Quando os programas tornaram-se muito grandes para a memória, a solução foi dividir os programas em pedaços menores e está técnica ficou conhecida como overlay, porém, somente o programar podia separar as partes, então Fotheringham em 1961 inventou o método de memória virtual, onde o sistema operacional é quem gerência a memória virtual – uma evolução do overlay - sua essência se baseia em que o tamanho do programa, dos dados e da pilha, juntos poderia exceder a quantidade da memória física disponível, no sistema em uso a parte principal ficava na memória principal (RAM) e as outras em disco (ROM).
Um exemplo usual para entender esse processo é, um programa de 16 Mb pode ser executado em uma máquina de 4 Mb, para tal feito é foi necessário dividir o programa em quatro partes de 4 Mb cada e executar cada parte quando for mais necessário.
A memória virtual também pode trabalhar em um sistema de multiprogramação, com pedaços de muitos programas na memória simultaneamente. Enquanto um programa está esperando parte dele próprio ser trazida para a memória, ele fica esperando a E/S e não pode executar, então, a CPU pode ser dada a outro processo, assim como em qualquer outro sistema de multiprogramação (Tanenbaum). Ainda existem algumas técnicas implementadas dentro da memória virtual que serão discutidas.
Paginação, Tabelas de Páginas e Multiníveis e Memória Associativa ou TLB
A maioria dos sistemas com memória virtual utiliza uma técnica denominada paginação. Em qualquer computador existe um conjunto de