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

0

Portanto, um único processo terá espaço de endereçamento de 2 ^ 32 bytes, não é tão grande?

Se o espaço de endereçamento de um único processo é grande, não vai custar muito tempo entre a memória principal e o armazenamento de apoio? E se um único processo tiver 4GB de espaços de endereços alocados, quantos espaços outro processo pode ter?

Estou lendo Operating System Concepts, 9ª ed., Silberschatz, Page379.

    
por Niing 31.07.2018 / 08:13

2 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 512mb ou 1gb de RAM do sistema, que já estava se aproximando do limite imposto pelo espaço de 32 bits. Não apenas os aplicativos de 32 bits são limitados a 4 GB de memória, mas todo o sistema, juntamente com um processador de núcleo único, mataria multitarefas. Agora os computadores operam como sistemas de 64 bits, permitindo um teórico de 18,4 exabytes de RAM. Muitos, se não todos os programas comuns hoje em dia (excluindo aplicativos de estação de trabalho) usam quase ou menos de 4GB de RAM (muitos são aplicativos de 32 bits cumpridos para trabalhar em um espaço de 64 bits). 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 computação gráfica e designe 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é, não necessariamente sempre, 4GB de RAM alocados

    
por 31.07.2018 / 08:55
1

won't it cost too much time swap-in/out between main memory and backing store?

Não, porque a memória para processos é enviada para o disco como "páginas" que geralmente têm tamanho de 4KB. Nós não enviamos todo o espaço de endereçamento de um processo de uma só vez. Você está correto 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çamento atribuído de 4 GB, eles solicitam apenas pequenas quantidades de memória, conforme necessário. Novamente, escrever todo o espaço de endereços seria um desperdício, pois a maior parte estaria vazia.

if a single process has 4GB address spaces allocated, how many space can other process have?

Cada processo tem seu próprio espaço de endereçamento, que é separado de todos os outros processos. O sistema operacional separa processos em seu próprio espaço de endereço e traduz endereços virtuais em endereços de memória física com a assistência da CPU. Na verdade, todo processo é um novo espaço de endereço "virtual" com memória alocada suportada pela RAM física.

A memória física nunca é realmente tratada por um programa, os dados são gravados na memória, mas o endereço real ao qual um processo grava é um endereço virtual que é traduzido em um endereço físico.

    
por 31.07.2018 / 09:22