Portanto, um único processo terá 2 ^ 32 bytes de espaço de endereço, não é muito grande?
Se o espaço de endereçamento de um único processo for grande, não custará muito tempo trocando entre a memória principal e o armazenamento de backup? E se um único processo tem espaços de endereço de 4 GB alocados, quanto espaço outro processo pode ter?
Estou lendo Conceitos de sistema operacional, 9ª ed., Silberschatz, Página379.
operating-systems
Niing
fonte
fonte
Respostas:
No final da era de 32 bits, o limite de 4 GB de RAM estava realmente começando a ser sentido. Tomemos, por exemplo, o fato de que muitos computadores do início dos anos 2000 foram enviados com 512 MB ou 1 GB de RAM do sistema, que já estava chegando ao limite imposto pelo espaço de 32 bits. Não são apenas os aplicativos de 32 bits limitados a 4 GB de memória, mas todo o sistema, o que, juntamente com um processador de núcleo único, mataria a multitarefa. Agora, os computadores operam como sistemas de 64 bits, permitindo 18,4 exabytes teóricos de RAM. Muitos, se não todos os programas comuns de hoje (excluindo aplicativos de estação de trabalho) usam quase ou menos de 4 GB de RAM (muitos são aplicativos de 32 bits que funcionam em um espaço de 64 bits). Portanto, enquanto 4 GB de RAM podem parecer muito para um programa (e no caso da sua máquina VAX, um limite teórico imposto pelo design, enquanto na realidade a memória disponível para cada programa era muito menor) e, em alguns casos, ainda é, o advento da multitarefa e da computação gráfica e design acelerou a necessidade de computadores de 64 bits. (Espero que isso responda à sua pergunta, que acredito estar dizendo que um tamanho de endereço de 32 bits é muito grande e desnecessário e não impossível) Um processo pode ter até, nem sempre sempre, 4 GB de RAM alocados
fonte
Não, porque a memória dos processos é enviada para o disco como "páginas", que geralmente têm tamanho de 4KB. Não fornecemos todo o espaço de endereço de um processo de uma só vez. Você está certo em acreditar que isso seria complicado e resultaria rapidamente em grandes quantidades de dados sendo gravados no disco.
A maioria dos processos não aloca todo o espaço de endereço alocado de 4 GB, eles apenas solicitam pequenas quantidades de memória, conforme necessário. Novamente, escrever todo o espaço de endereço seria um desperdício, pois a maior parte estaria vazia.
Cada processo possui seu próprio espaço de endereço, separado de todos os outros processos. O sistema operacional separa processos em seu próprio espaço de endereço e converte endereços virtuais em endereços de memória física com a assistência da CPU. De fato, todo processo é um novo espaço de endereço "virtual", com a memória alocada sendo suportada pela RAM física.
A memória física nunca é realmente endereçada por um programa, os dados são gravados na memória com certeza, mas o endereço real no qual um processo grava é um endereço virtual que é traduzido em um endereço físico.
fonte