Administração dos dados da memória na tabela do processo. Aqui está um sumário de algum dos dados mantidos na tabela do processo que é usado para administração da memória.
Limites do processo da memória.
Ulong – start_code – and_code – and_data – brk, atart – stock
Erro de contagem de página.
Tabela do descritor local.
Números de páginas residentes.
Swappable – trocáveis
Se então as páginas do processo não serão trocados. Kernel Stack page
Indicador para a página distribuída no fork. Saved – Kernel – Stack
V86 modo material (stuff)
stract tss
pilha de segmentos (stack segments)
indicador da pilha Kernel
Kernel stack pointer
segmento da pilha Kernel
Kernel stack segment (0X10)
ssi = esp 2 = ss2 = 0
Níveis de previlégio não usados.
Segmentos seletores. Ds=es=fs=gs=ss=ok17,cs—
Todos indicam para segmentos no corrente 1 dt [ ]
c r 3 : indicam para o page directory para este processo 1 dt – LDT (n) seletores para tarefas correntes do LDT
4.4 – Inicialização da memória
No Start Kernel (main.c) há 3 variáveis relatadas para inicialização da memória:
*memory_start começa a 1 Mb atualizado pelo projeto de inicialização.
*memory_end término da memória física: 8 Mb, 16 Mb, ou qualquer outro.
*Low memory_start término do código Kernel e dados que é carregado inicialmente Cada projeto init tipicamente torna memory_start e retorna um valor atualizado, se distribui espaços no memory_start (simplesmente pegando-a).
*Paging init ( ) inicializa a page-tables no { \ tt swapper – pg – dir} ( começando a 0 X 0000000) para cobrir toda a memória física do memory_start para memory_end. Na verdade o primeiro 4 Mb é feito no startup_32 (heads).memory_start é incrementado se quaisquer nova page-tables são adicionados. A primeira página é zerada para bloquear os indicadores das referências do alçapão nulo no Kernel.