Um processo pode ter um espaço de endereço lógico de 4 GB? [fechadas]


0

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.

4G?


Grande demais para quê? Por que você considera um problema? Por favor edite sua pergunta, não está claro o que está pedindo.
gronostaj

A paginação funciona no nível da página. Os detalhes do que faz um processo são específicos para todos os sistemas operacionais, embora a maioria tenha alguns pontos em comum. // Além disso, você pode querer pesquisar mais a memória virtual. ! Espaço de endereço = memória consumida
Daniel B

@DanielB: Então, no texto, 4 GB é o máximo teórico para cada processo, mas não necessariamente assim e os detalhes são deixados para o SO, isso está correto?
Niing 31/07/19

São apenas 4 GB em sistemas operacionais de 32 bits. Mas sim, o sistema operacional pode impor limites arbitrários, além de limites técnicos.
Daniel B

Respostas:


1

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


1

não vai custar muito tempo de troca / retirada entre a memória principal e a loja de backup?

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.

se um único processo possui 4 GB de espaço de endereço alocado, quanto espaço outro processo pode ter?

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.