Espaço de Endereçamento Virtual
Voltar Voltar para a pagina inicial Avançar
A arquitetura VAX proporciona um espaço de endereçamento virtual para cada processo de 4Gbytes. Grande parte desse espaço é utilizada para informações de controle, estando disponível para o programa e dados aproximadamente 1Gbytes.
O espaço de endereçamento virtual que cada processo possui é um espaço imaginário e contíguo de células. Os endereços referenciados por um programa são sempre virtuais. Em tempo de execução, tais endereços virtuais são transformados em endereços físicos. O subsistema de gerência de memória é responsável por simular a existência do espaço virtual.
A implementação da memória virtual é realizada através de um mecanismo chamado mapeamento. Esta é a maneira pela qual o sistema consegue encontrar a correta localização física (em disco ou memória física) correspondente a um endereço virtual.
A gerência de memória implementa a técnica de paginação, responsável por manter em memória física somente a parte da memória virtual do processo em uso. Nos  sistemas VAX, a página é definida como tendo 512 bytes. Com base nisso, tanto a memória virtual quanto a memória física são divididas em blocos de tamanho de 512 endereços. A memória virtual é dividida, então, em blocos de 512 endereços virtuais, denominadas páginas virtuais. Da mesma forma, a memória principal é dividida em blocos de 512 células de 1byte, denominadas páginas físicas ou frames.
Fixar em 512 o tamanho da página é o resultado de uma série de ajustes. Entre estes, o fato de que a quantidade mínima de dados que o disco, nos sistemas VAX, transaciona é de 512 bytes (1 bloco). Existem também outros motivos que, por serem inerentes ao mapeamento, serão vistos no decorrer deste assunto.
O conjunto de frames que um processo possui na memória principal em determinado instante é denominado working set. Quando um programa é executado, parte de seu código e /ou dados está no working set, enquanto que o restante é deixado em disco. Embora algumas páginas estejam no working set do processo e, conseqüentemente, na memória principal, elas ainda estão escritas em termos de endereços virtuais e, portanto, suas instruções precisam ser mapeadas antes de serem executadas pela UCP.
Para fazer o mapeamento entre a memória virtual e a memória principal, o sistema utiliza uma estrutura de dados chamada tabela de páginas (page table). Cada página da memória virtual gera um registro na tabela de páginas denominado Page Table Entry (PTE). Toda PTE tem, entre outras informações, um bit que indica se a página associada àquela PTE está ou não no working set do processo (bit de validade).
Sempre que se referencia uma página, o bit de validade é verificado. O fato de ele estar ligado indicará que a página é válida, pois está no working set. Desta forma, o sistema poderá localizar a página na memória real, através das demais informações contidas na PTE. Por outro lado, se o bit de validade não estiver ligado, significará que esta é uma página não-válida.