mapeamentos do espaço de endereço do kernel com relação ao espaço de endereço virtual - uma questão baseada no texto de Robert Love

6

Em LKD 3ª edição, capítulo 12 em Zonas, Robert Love diz:

In particular, Linux has to deal with two shortcomings of hardware with respect to memory addressing:

  1. Some hardware devices can perform DMA (direct memory access) to only certain memory addresses.

  2. Some architectures can physically addressing larger amounts of memory than they can virtually address. Consequently, some memory is not permanently mapped into the kernel address space.

Minhas perguntas:

  1. Primeiro está tudo bem, o que ele quer dizer com 2?
  2. Ele pretende dizer: algumas arquiteturas podem endereçar quantidades maiores de memória física do que podem endereçar endereços virtuais?
  3. Como isso é possível? Eu pensei que o espaço de endereço virtual é maior que a memória física ou pelo menos (se algum) igual à memória física.
  4. Além disso, não é porque o VAS (espaço de endereço virtual) é maior do que a memória física, alguma memória não é mapeada permanentemente no KAS (espaço de endereço do kernel).

Mas estou supondo que apenas a memória física é mapeada para o KAS. Deixe-me saber o que ele quer dizer com o item 2 acima e qual (is) suposição (i) errada (s) que estou fazendo aqui.

    
por Delete My Account 30.10.2013 / 18:39

1 resposta

4

Extensão de endereço físico (PAE) é exatamente igual ao que ele está se referindo.

Uma CPU de 32 bits só pode mapear ~ 4GB de memória, mesmo que o sistema tenha mais. Mas com o PAE, você pode usar > 4gb, embora apenas 4gb seja mapeado a qualquer momento (um único processo nunca poderá usar > 4gb).

Então, basicamente, quando o kernel altera o processo de execução ativa, ele mapeia novamente a memória virtual para a memória física que esse processo está usando no momento.

    
por 30.10.2013 / 18:48