São funções do gerenciador de memória: I. Controlar q...

Próximas questões
Com base no mesmo assunto
Q111541 Sistemas Operacionais
São funções do gerenciador de memória:

I. Controlar quais as unidades de memória estão ou não estão em uso, para que sejam alocadas quando necessário.

II. Liberar as unidades de memória que foram desocupadas por um processo que finalizou.
III. Tratar do Swapping entre memória principal e memória secundária.

Está correto o que se afirma em:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - I, II e III.

A resposta correta é a letra E, que afirma que todas as afirmações – I, II e III – são funções do gerenciador de memória de um sistema operacional. Vamos entender melhor cada uma delas e por que estão corretas.

I. Uma das responsabilidades fundamentais do gerenciador de memória é monitorar cada pedaço de memória no sistema, saber o status de ocupação (usado ou não usado) desses espaços, e alocá-los aos processos quando eles precisam. Sem essa gestão, o sistema não poderia garantir que a memória está sendo usada eficientemente, nem prevenir problemas como dois processos escrevendo no mesmo local de memória, o que causaria corrupção de dados.

II. Outra função crítica é liberar a memória que não está mais em uso, como quando um processo é encerrado. Isso é importante para que outros processos possam utilizar esses recursos. A memória precisa ser desalocada corretamente para evitar o que é conhecido como "memory leak" ou vazamento de memória, que acontece quando a memória que deveria ter sido liberada continua marcada como ocupada, reduzindo a quantidade de memória disponível para outros processos.

III. O gerenciamento de memória também abrange o swapping, que é o processo de transferir partes da memória para dispositivos de armazenamento secundário (como o disco rígido) e vice-versa. Esta é uma técnica utilizada para aumentar a quantidade de memória disponível, através da simulação de espaço de memória adicional, chamada de memória virtual. Quando o sistema operacional percebe que não há memória suficiente para os processos que estão executando, ele pode mover temporariamente dados que não estão em uso imediato para a memória secundária, liberando espaço na memória principal para os dados que precisam ser acessados mais rapidamente.

Portanto, as três funções descritas são essenciais para a gerência de memória eficiente em um sistema operacional, justificando assim a resposta E - I, II e III.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Segundo Tanenbaum:

O gerenciador de memória deve ser capaz de controlar que parte da memória está em uso (e quais não estão), alocar memória para processos quando eles necessitam e desalocar quando eles terminam e, principalmente, gerenciar a troca entre a memória principal e o disco, quando a memória principal é muito pequena para armazenar todos os processos.

A redação do enunciado influencia bastante!

"I. Controlar quais as unidades de memória estão ou não estão em uso, (...) "
é diferente de, conforme comentario do colega acima:
"O gerenciador de memória deve ser capaz de controlar que parte da memória está em uso"

Você tem N módulos de memória no computador, X deles estão pifados, o pc ligar numa boa e depois o gerenciador de memória, em execução, sabe qual unidade de memória ele tem que alocar!

A alocação pode ser:

Estática: criada programa é compilado. o Sistema operacional o lê e cria um processo, programa em execução, recebendo um espaço na memória. Para alocação estática, o compilador deve saber o total de memória livre, mandar esta informação para o SO ele criar um segmento de dados.

Alocação Dinâmica: permite Swapping. Os objetos alocados dinamicamente podem ser criados e liberados a qualquer momento, em qualquer ordem. A memória dinâmica  para objetos é heap. Em linguagem C, organização do heap é lista encadeada de blocos livres, o que causa fragmentação dos blocos. Em linguagens com gerenciamento automático (Java), heap depende da parte do sistema que faz esse gerenciamento - garbage collection.

Fragmentacao pode ser


Interna: quando o processo não ocupa todos blocos de memória (páginas) reservados quando o tamanho do processo não é um múltiplo do tamanho da página de memória.

Externa: lacunas cada vez menores de espaços entre as páginas quando os programas terminam. Quando estes espaços sao pequenos demais para alocarem um processo, ficam inutilizados.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo