Gráfico de comparação
Bases a comparação | Alocação de Memória Contígua | Alocação de Memória Não Contígua |
---|---|---|
Basic | Aloca blocos consecutivos de memória para um processo. | Aloca blocos separados de memória para um processo. |
Despesas gerais | A alocação de memória contígua não tem a sobrecarga de conversão de endereços durante a execução de um processo. | Alocação de memória não-contígua tem sobrecarga de conversão de endereços durante a execução de um processo. |
Taxa de execução | Um processo executa o fatser na alocação de memória contígua | Um processo é executado de forma relativamente mais lenta na alocação de memória não contígua. |
Solução | O espaço de memória deve ser dividido na partição de tamanho fixo e cada partição é alocada para um único processo. | Divida o processo em vários blocos e coloque-os em diferentes partes da memória de acordo com a disponibilidade de espaço de memória disponível. |
Mesa | Uma tabela é mantida pelo sistema operacional que mantém a lista de partições disponíveis e ocupadas no espaço de memória | Uma tabela deve ser mantida para cada processo que transporta os endereços base de cada bloco que foi adquirido por um processo na memória. |
Definição de alocação de memória contígua
O sistema operacional e os processos do usuário devem ser acomodados na memória principal. Portanto, a memória principal é dividida em duas partições: em uma partição, o sistema operacional reside e, em outros, os processos do usuário residem. Em condições usuais, os vários processos do usuário devem residir na memória ao mesmo tempo e, portanto, é importante considerar a alocação de memória para os processos.
A alocação de memória contígua é um dos métodos de alocação de memória. Na alocação de memória contígua, quando um processo solicita a memória, uma única seção contígua de blocos de memória é atribuída ao processo de acordo com seu requisito.
No esquema de particionamento variável, o sistema operacional mantém uma tabela que indica qual partição da memória está livre e qual ocupa os processos. A alocação de memória contígua fixa a execução de um processo reduzindo as sobrecargas de tradução de endereço.
Definição Alocação de Memória Não Contígua
A alocação de memória não contígua permite que um processo adquira os vários blocos de memória na localização diferente na memória de acordo com seu requisito. A alocação de memória não-contígua também reduz o desperdício de memória causado devido à fragmentação interna e externa. Como utiliza os buracos de memória, criados durante a fragmentação interna e externa.
Paginação e segmentação são as duas maneiras que permitem que o espaço de endereço físico de um processo seja não contíguo. Na alocação de memória não contígua, o processo é dividido em blocos (páginas ou segmentos) que são colocados na área diferente do espaço de memória de acordo com a disponibilidade da memória.
A alocação de memória não-contígua tem a vantagem de reduzir o desperdício de memória, mas aumenta as sobrecargas de tradução de endereços. Como as partes do processo são colocadas em um local diferente na memória, isso atrasa a execução da memória porque o tempo é consumido na conversão de endereços.
Aqui, o sistema operacional precisa manter a tabela para cada processo que contém o endereço base de cada bloco que é adquirido pelo processo no espaço de memória.
Principais diferenças entre alocação de memória contígua e não contígua
- A diferença básica entre alocação de memória contígua e não contígua é que alocação contígua aloca um único bloco contíguo de memória ao processo enquanto, a alocação não contígua divide o processo em vários blocos e os coloca no espaço de endereço diferente da memória, ou seja, de uma maneira não contígua .
- Na alocação de memória contígua, o processo é armazenado no espaço de memória contíguo; Portanto, não há sobrecarga de tradução de endereços durante a execução. Porém, na alocação de memória não-contígua, há uma sobrecarga de conversão de endereço durante a execução do processo, pois os blocos de processo estão espalhados no espaço da memória.
- O processo armazenado na memória contígua é executado mais rapidamente em comparação com o processo armazenado no espaço de memória não contíguo.
- A solução para alocação de memória contígua é dividir o espaço da memória na partição de tamanho fixo e alocar uma partição em um único processo. Por outro lado, na alocação de memória não-contígua, um processo é dividido em vários blocos e cada bloco é colocado em diferentes lugares na memória de acordo com a disponibilidade da memória.
- Na alocação de memória contígua, o sistema operacional deve manter uma tabela que indica qual partição está disponível para o processo e qual é ocupada pelo processo. Na alocação de memória não-contígua, uma tabela é mantida para cada processo que indica o endereço base de cada bloco do processo colocado no espaço de memória.
Conclusão:
A alocação de memória contígua não cria nenhuma sobrecarga e fixa a velocidade de execução do processo, mas aumenta o desperdício de memória . Por sua vez, a alocação de memória não-contígua cria overheads de conversão de endereços, reduz a velocidade de execução de um processo, mas aumenta a utilização da memória . Portanto, existem prós e contras de ambos os métodos de alocação.