![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Endereço Virtual | ||||||||
Voltar | Voltar para a pagina inicial | Avançar | ||||||
O endereço virtual é estruturado em duas partes, correspondentes à página virtual e ao byte dentro da página. O virtual page number (VPN, bits 9:29) indica a página virtual em que o endereço está contido, e o campo de deslocamento (bits 0:8) indica qual o byte especificado dentro da página.
O espaço de endereçamento virtual de cada processo é dividido em duas regiões denominado região do processo e região do sistema. O bit mais significativo do endereço virtual (bit 31) indica se o endereço pertence à região do processo (bit50) ou à do sistema (bit51). A região do sistema é compartilhada por todos os processos. Neste caso, quando um processo faz referência a um endereço virtual dessa região, este tem o mesmo significado para todos os processos. Isto significa que quando dois processos fazem referência a um mesmo endereço virtual da região do sistema, eles estarão referenciando o mesmo código ou dado. Todo código do sistema operacional compartilhado entre processos está localizado nesta região. Para que este compartilhamento seja realizado de forma organizada, o sistema implementa mecanismos de proteção para restringir o acesso às páginas. Tanto a região do processo quanto a região do sistema são subdivididas em duas regiões, totalizando quatro regiões no espaço de endereçamento virtual. Cada uma dessas sub-regiões representa 1Gbytes de endereçamento. As duas sub-regiões do espaço do processo são denominadas, respectivamente, região do programa (P0) e região de controle (P1). Quando se executa um programa do usuário, o módulo executável é alocado em endereços virtuais da região (P0), começando no endereço 0 e crescendo para os endereços maiores. Já na região P1, os endereços virtuais são alocados na seqüência dos maiores para os menores, em vista de tal região ser utilizada por estruturas de pilhas. A região do sistema também é dividida em duas sub-regiões de 1 Gbytes (S0 e S1). Os endereços virtuais da sub-região S0 contêm o código e estruturas do sistema operacional, como rotinas de interrupções, rotinas do sistema e tabelas de páginas. A sub-região S1 é reservada para uso futuro. Atualmente, a UCP não traduz um endereço virtual localizado nesta região. Caso algum processo faça referência a um endereço dentro dessa faixa, um erro de hardware ocorrerá. |