DEV Community

Cover image for Memória Real x Memória Virtual e Fragmentação
Thomas Lincoln
Thomas Lincoln

Posted on

Memória Real x Memória Virtual e Fragmentação

Assim como já vimos em posts anteriores, a memória vê uma lista de endereços que apontam para páginas e não necessariamente temos o número máximo de endereços que a CPU nos fornece, onde o barramento nos limita e o SO reserva um pouco para ele.

Porém, temos um outro detalhe que é importante saber e entender. Que é a memória virtual.

Mas o que é isso Thomas?

pensando

Então, na memória real, nós realmente tínhamos uma lista de endereços que iam por exemplo de 000 até FFF (desconsiderando todas as diminuições apenas para que seja mais fácil de entender). Porém isso causava um problema onde os programas podiam acessar os dados um dos outros e outros problemas. Com isso, a partir dos anos 90, surgiram processadores capazes de usar memória virtual.

O que acontece?

Bem, a memória virtual funciona da seguinte forma, ela pega uma parte da memória local e cria endereços virtuais, assim o programa vai ver uma memória de 000 até FFF, mas na vdd vai estar acessando por exemplo A43. E conforme for precisando de mais ele vai alocando.

E com isso os programas começa a se tornar isolados. Impedindo que eles comecem a acessar dados um dos outros.

Fragmentação

fragment

Como um último assunto desse post vou falar sobre fragmentação. Vamos supor que você tenha 5 caixinhas, e sempre que você quiser armazenar coisas nela tenha que ser em caixas seguidas.

(Você vai precisar de bastante imaginação)

Suponha que você guarde 3 tênis nas primeiras caixas. E agora decida guardar 2 camisetas nas duas últimas. Mas agora decide esvaziar a segunda e a quarta caixa.

E agora vc tem duas caixas vazias, mas separadas. E como você só pode salvar coisas contínuas, mesmo que possa guardar duas coisas, você só pode guardar coisas diferentes. E esse é o problema da fragmentação.

Top comments (0)