• O segmento base do processo usuário = o X 00, page – dir particular, para o processo.
• O processo usuário faz um sistema de ligação : segment base = 0 X c 0000000 page – dir = mesmo usuário page dir.
• swapper – pg – dir contém um mapeamento para todas as páginas físicas de 0 X 0000000 para 0 X c 0000000
+ and_mem, então as primeiras 768 entradas em swapper – pg – dir são 0's, e então há 4 ou mais que indicam na tabela de páginas Kernel.
• O user page directories têm as mesmas entradas como swapper – pg – dir dos 768 acima. As primeiras 768 entradas mapeam o espaço usuário.

A vantagem é que sempre que o endereço linear é acima de 0 X c 0000000 tudo usa a mesma tabela de páginas Kernel (Kernel page Tables).

O monte usuário permanece no topo do segmento de dados do usuário e desce. O Kernel Stack não é uma bonita estrutura ou segmento de dados que eu possa apontar com um "aqui é um Kernel Stack".

Um Kernel Stack_frame (uma página) é associada com cada novo processo criado e é usado sempre que o Kernel opera dentro do contexto deste processo.

Coisas ruins aconteceriam se Kernel Stack descesse abaixo de seu corrente stack frame. [ Onde o Kernel Stack é guardado? Eu sei que há um para cada processo, mas onde isto é armazenado quando isto não está sendo usado?

Páginas usuários podem ser roubados ou trocados – Um user page é um que é mapeado abaixo de 3 Gb em uma tabela de páginas usuários. Esta região não contém page directories ou page tables. Apenas páginas sujas são trocadas.

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Páginas ( 2 de 14 ): « Previous1 2 34567891011121314Next »