Você está na página 1de 23

Gerência de memória

APRESENTAÇÃO

Você sabia que os problemas relacionados à memória impactam diretamente na performance das
aplicações utilizadas pelos usuários? O gerenciador de memória do sistema operacional tem
como função manter o controle de quais partes da memória estão em uso e quais não estão,
alocando memória aos processos, quando necessário, e liberando-a quando os processos forem
encerrados. Além disso, o gerenciador de memória coordena a troca de processos entre a
memória e o disco (quando a memória principal não é suficiente).

Nesta Unidade de Aprendizagem, você vai conhecer os diferentes modos de gerenciar as


atividades da memória e suas características, além de identificar a hierarquia de armazenamento
de um computador.

Bons estudos.

Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:

• Definir a hierarquia de armazenamento de um computador.


• Identificar os modos de gerenciamento de memória e suas características.
• Reconhecer o funcionamento da memória virtual.

DESAFIO

Marcos Paulo é o Analista de Tecnologia da Informação da empresa BonaTech. Suas atribuições


variam desde o suporte aos usuários até a configuração e manutenção de servidores e ativos de
rede. Além disso, a empresa possui um pequeno data center que hospeda um servidor da
aplicação de e-commerce da BonaTech.
Marcos Paulo não tem muita familiaridade com o Linux, mas está desconfiado de que essa
lentidão está relacionada com a quantidade de memória RAM. Como ele não era o funcionário
na época em que o servidor foi instalado, ele não sabe qual a quantidade de memória instalada
no equipamento.

Diante do exposto, Marcos necessita saber a quantidade de memória instalada e a quantidade de


memória utilizada na hora de pico. Como ele pode solucionar esse problema?

INFOGRÁFICO

A técnica de swapping com partições variáveis permite que, a cada instante de tempo, a
memória possa alocar e desalocar processos cujos tamanhos são diferentes. O número e o
tamanho das partições na memória variam conforme os processos são alocados/desalocados.

Acompanhe, no próximo infográfico, os 7 instantes de tempo e o processo de swapping com


partições variáveis.
CONTEÚDO DO LIVRO

O capítulo Gerência de Memória, da obra "Sistemas Operacionais", apresenta os diferentes


modos de gerenciar as atividades da memória de um computador. Acompanhe!
SISTEMAS
OPERACIONAIS

Cleverson Lopes Ledur


Gerência de memória
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

„„ Definir a hierarquia de armazenamento de um computador.


„„ Identificar os modos de gerenciamento de memória e suas
características.
„„ Reconhecer o funcionamento da memória virtual.

Introdução
Quando um processo é executado num computador, ele precisa de tempo
de CPU, mas precisa também de memória. Quando os processos são
executados, precisam ocupar espaço na memória para que o computador
possa ler e carregá-los rapidamente. No entanto, em comparação com
nossos discos rígidos, a memória volátil é pequena. Então, para nos dar
mais memória do que temos fisicamente, usamos algo chamado memória
virtual. Trata-se de uma combinação de espaço no disco rígido e na RAM,
que funciona como a memória que os processos podem usar. Quando
executamos um processo, pegamos os dados do programa em partes
que chamamos de páginas. Armazenamos essas páginas na memória
virtual. Se quisermos ler e executar essas páginas, elas devem ser enviadas
para a memória física, ou RAM.
Este é apenas um dos conceitos que temos sobre gerenciamento
de memória em sistemas operacionais. É importante o conhecimento
desses processos para entender como o sistema operacional realiza a
abstração das complexidades.
Neste capítulo, você vai conhecer outros conceitos sobre geren-
ciamento de memória e, ao final, vai definir a hierarquia de armazena-
mento de um computador; vai identificar os modos de gerenciamento
de memória e suas características e vai reconhecer o funcionamento da
memória virtual.
2 Gerência de memória

Hierarquia de armazenamento
A hierarquia de memória organiza o armazenamento do computador com
base no tempo de resposta. Como o tempo de resposta está relacionado à
complexidade e à capacidade, os níveis também podem ser diferenciados por
suas tecnologias de desempenho e controle. A hierarquia de memória afeta
o desempenho no projeto de arquitetura do computador, nas previsões de
algoritmo e nas construções de programação de nível inferior, que envolvem
a localidade de referência (TANENBAUM; BOS, 2014).
O design para alto desempenho requer considerar as restrições da hierarquia
de memória, ou seja, o tamanho e os recursos de cada componente. Cada
um dos vários componentes pode ser visto como parte de uma hierarquia de
memórias (m1, m2, ..., mn) em que cada membro mi é tipicamente menor e
mais rápido que o próximo maior membro mi + 1 da hierarquia. Para limitar
a espera por níveis mais altos, um nível mais baixo responderá preenchendo
um buffer e, em seguida, sinalizando para ativar a transferência.
Existem quatro níveis principais de armazenamento.

„„ Interno — registradores e cache do processador.


„„ Principal — a RAM do sistema e as placas controladoras.
„„ Armazenamento em massa on-line — armazenamento secundário.
„„ Armazenamento off-line — armazenamento terciário e off-line.

Essa é uma estruturação geral da hierarquia de memória. Muitas outras


estruturas são úteis. Por exemplo, um algoritmo de paginação pode ser con-
siderado como um nível de memória virtual ao projetar uma arquitetura de
computador e pode-se incluir um nível de armazenamento nearline entre o
armazenamento on-line e off-line.
Veja na Figura 1 os níveis de armazenamento dentro de um sistema com-
putacional. Na parte superior, temos os registradores da CPU, seguidos pelos
níveis de cache. Note que, quanto mais próximo da parte superior, temos o
armazenamento que ocorre em tempo de processamento ou quase. Descendo,
temos um distanciamento do processador, aparecendo a memória RAM e, após,
os dispositivos de armazenamentos e as fontes de entrada/saída.
Gerência de memória 3

Registra-
dores
da CPU
Cache
Nível 1
Nível 2 Áreas de
armazenamento
RAM temporário
Memória Memória
física virtual
Tipos de dispositivos de armazenamento
Armaze- Áreas de
ROM/ Discos namento Disco armazenamento
BIOS removíveis rede/ rígido permanente
internet
Fontes de entrada
Scanner/
câmera/
Mídia microfone/ Fontes Outras
Teclado Mouse removível vídeo remotas fontes

Figura 1. Níveis de armazenamento no sistema operacional.


Fonte: Duarte (2012, documento on-line).

Modos de gerenciamento de memória


O gerenciamento de memória é a funcionalidade de um sistema operacional
que manipula ou gerencia a memória principal e move os processos de um
lado para outro, entre a memória principal e o disco durante a execução. O
gerenciamento de memória monitora toda e qualquer localização de memória,
independentemente de ela estar alocada a algum processo ou estar livre. Ele
verifica quanta memória deve ser alocada para processos. Decide qual processo
terá memória a que horas. Ele rastreia sempre que alguma memória é liberada
ou não alocada e, correspondentemente, atualiza o status (TANENBAUM;
BOS, 2014).

Espaço de endereço do processo


O espaço de endereço do processo é o conjunto de endereços lógicos a que um
processo faz referência em seu código. Por exemplo, quando o endereçamento
4 Gerência de memória

de 32 bits está em uso, os endereços podem variar de 0 a 0x7fffffff; ou seja, 231


números possíveis, para um tamanho teórico total de 2 gigabytes.

O sistema operacional cuida do mapeamento dos endereços lógicos para


os endereços físicos no momento da alocação de memória para o programa.
Existem três tipos de endereços usados em um programa, antes e depois da
memória ser alocada

„„ Endereços simbólicos — os endereços usados em um código-fonte. Os


nomes das variáveis, constantes e rótulos de instrução são os elementos
básicos do espaço de endereço simbólico.
„„ Endereços relativos — no momento da compilação, um compilador
converte endereços simbólicos em endereços relativos.
„„ Endereços físicos — o carregador gera esses endereços no momento
em que um programa é carregado na memória principal.

Endereços virtuais e físicos são os mesmos em tempo de compilação e


esquemas de ligação de endereço de tempo de carregamento. Endereços virtuais
e físicos diferem no esquema de vinculação de endereço de tempo de execução.
O conjunto de todos os endereços lógicos gerados por um programa é
referido como um espaço de endereçamento lógico. O conjunto de todos os
endereços físicos correspondentes a esses endereços lógicos é chamado de
espaço de endereço físico. O mapeamento de tempo de execução do endereço
virtual para o físico é feito pela unidade de gerenciamento de memória (MMU),
que é um dispositivo de hardware. A MMU usa o mecanismo a seguir para
converter o endereço virtual em endereço físico (TANENBAUM; BOS, 2014).
O valor no registro base é adicionado a cada endereço gerado por um
processo do usuário, que é tratado como offset no momento em que é enviado
para a memória. Por exemplo, se o valor do registro de base for 10000, uma
tentativa do usuário de usar o local de endereço 100 será realocada dinamica-
mente para o local 10100. O programa do usuário lida com endereços virtuais;
nunca vê os endereços físicos reais.

Carregamento estático versus dinâmico


A escolha entre carregamento estático ou dinâmico deve ser feita no momento
em que o programa de computador está sendo desenvolvido. Se você tiver que
carregar seu programa estaticamente, então, no momento da compilação, os
programas completos serão compilados e vinculados sem deixar nenhum pro-
Gerência de memória 5

grama externo ou dependência de módulo. O vinculador combina o programa


objeto com outros módulos de objetos necessários em um programa absoluto,
que também inclui endereços lógicos.
Se você estiver escrevendo um programa carregado dinamicamente, então
seu compilador irá compilar o programa para todos os módulos que você
deseja incluir dinamicamente. Apenas referências serão fornecidas e o resto
do trabalho será feito no momento da execução.
No momento do carregamento, com carregamento estático, o programa
absoluto (e dados) é carregado na memória para que a execução seja iniciada.
Se você estiver usando o carregamento dinâmico, as rotinas dinâmicas
da biblioteca serão armazenadas em um disco no formato relocável e serão
carregadas na memória somente quando forem necessárias ao programa.

Ligação estática versus dinâmica


Quando é usada a vinculação estática, o vinculador combina todos os outros
módulos necessários a um programa em um único programa executável, para
evitar qualquer dependência de tempo de execução.
Quando a vinculação dinâmica é usada, não é necessário vincular o módulo
ou biblioteca real ao programa, mas uma referência ao módulo dinâmico é
fornecida no momento da compilação e vinculação. Bibliotecas de vínculo
dinâmico (DLL), no Windows, e objetos compartilhados, no Unix, são bons
exemplos de bibliotecas dinâmicas.

Swapping

Swapping é um mecanismo em que um processo pode ser trocado temporaria-


mente da memória principal (ou movido) para o armazenamento secundário
(disco) e disponibilizar essa memória para outros processos. Posteriormente,
o sistema troca o processo do armazenamento secundário para a memória
principal.
Embora o desempenho seja geralmente afetado pelo processo de troca, o
swapping ajuda na execução de múltiplos e grandes processos em paralelo.
Essa é a razão pela qual também é reconhecido como uma técnica de com-
pactação de memória.
O tempo total gasto pelo processo de troca inclui o tempo necessário
para mover todo o processo para um disco secundário e depois para copiar
o processo de volta à memória, bem como o tempo que o processo leva para
recuperar a memória principal.
6 Gerência de memória

Vamos supor que o processo do usuário seja de tamanho 5.120 Kb em um


disco rígido padrão e a troca ocorra a uma taxa de transferência de dados em
torno de 1 Mb por segundo. A transferência real do processo de 1.000 K da
memória levará 5.120 Kb / 1.024 Kb por segundo;
= 5 segundos
= 5.000 milissegundos
Agora considerando o tempo de entrada e saída, ele levará 7.000 milisse-
gundos completos, além de outro overhead, em que o processo compete para
recuperar a memória principal.

Alocação de memória

A memória principal geralmente tem duas partições:

„„ Baixa memória — o sistema operacional reside nesta memória.


„„ Alta memória — os processos do usuário são mantidos em alta memória.

O sistema operacional usa o seguinte mecanismo de alocação de memória:

„„ Alocação de partição única — nesse tipo de alocação, o esquema de


registro de relocação é usado para proteger os processos do usuário
uns dos outros e de alterar o código e os dados do sistema operacional.
O registro de realocação contém o valor do menor endereço físico,
enquanto o registro de limite contém o intervalo de endereços lógicos.
Cada endereço lógico deve ser menor que o registrador de limite.
„„ Alocação de múltiplas partições — nesse tipo de alocação, a memória
principal é dividida em várias partições de tamanho fixo, onde cada
partição deve conter apenas um processo. Quando uma partição está
livre, um processo é selecionado da fila de entrada e é carregado na
partição livre. Quando o processo termina, a partição fica disponível
para outro processo.

Conforme a Figura 2, temos basicamente dois tipos de alocação, a contígua


e a não contígua. A alocação contígua consiste em armazenar um arquivo em
blocos sequencialmente dispostos, permitindo ao sistema localizar um arquivo
por meio do endereço do primeiro bloco e da sua extensão em blocos. Essa,
então, é dividida em simples e particionada, podendo ser estática ou dinâmica.
A alocação contígua realiza o uso ineficiente de memória (fragmentação interna
Gerência de memória 7

e externa) devido à exigência de que toda memória alocada a um processo


deveria ser contínua. A solução é o uso de alocação não contígua, ou seja,
utilizar sistemas de gestão de memória que permitam a alocação de memória
física não contínua aos processos.

Figura 2. Tipos de alocação de memória.

Fragmentação

Como os processos são carregados e removidos da memória, o espaço de


memória livre é dividido em pequenos pedaços. Às vezes, não se consegue
alocar processos para blocos de memória, considerando seu tamanho pequeno,
e os blocos de memória permanecem sem uso. Esse problema é conhecido
como fragmentação. A fragmentação pode ser de dois tipos:

„„ Fragmentação externa — o espaço total de memória é suficiente para


satisfazer uma solicitação ou para residir em um processo, mas não é
contíguo e, portanto, não pode ser usado. A fragmentação externa pode
ser reduzida pela compactação ou pelo conteúdo da memória aleatória
para colocar toda a memória livre em um único bloco grande. Para
tornar a compactação viável, a realocação deve ser dinâmica.
„„ Fragmentação interna — o bloco de memória atribuído ao processo é
maior e alguma parte da memória é deixada sem uso, já que não pode
ser usada por outro processo. A fragmentação interna pode ser reduzida
atribuindo efetivamente a menor partição, mas grande o suficiente para
o processo.
8 Gerência de memória

Paginação

Um computador pode endereçar mais memória do que a quantidade fisicamente


instalada no sistema. Essa memória extra é, na verdade, chamada de memória
virtual e é uma seção de um disco rígido que é configurado para emular a
RAM do computador.
A técnica de paginação desempenha um papel importante na implementação
da memória virtual. Paginação é uma técnica de gerenciamento de memória
na qual o espaço de endereço do processo é dividido em blocos do mesmo
tamanho, chamados de páginas (o tamanho é a potência de 2, entre 512 bytes
e 8192 bytes). O tamanho do processo é medido no número de páginas.
Da mesma forma, a memória principal é dividida em pequenos blocos
de tamanho fixo de memória (física) chamados quadros. O tamanho de um
quadro é mantido o mesmo que o de uma página para otimizar a utilização da
memória principal e evitar fragmentação externa. Quando o sistema aloca um
quadro a qualquer página, ele converte esse endereço lógico em um endereço
físico e cria uma entrada na tabela de páginas, a ser usada durante a execução
do programa.
Quando um processo deve ser executado, suas páginas correspondentes
são carregadas em qualquer quadro de memória disponível. Suponha que você
tenha um programa de 8 Kb, mas sua memória pode acomodar apenas 5 Kb
em um determinado ponto no tempo. Então, o conceito de paginação entrará
em cena. Quando um computador fica sem RAM, o sistema operacional mo-
verá páginas de memória ociosas ou indesejadas para a memória secundária,
liberando memória RAM para outros processos e trazendo de volta quando
necessário ao programa.
Este processo continua durante toda a execução do programa, onde o
sistema operacional continua removendo as páginas ociosas da memória
principal, as grava na memória secundária e as traz de volta quando requerido
pelo programa.
A paginação reduz a fragmentação externa, mas ainda sofre com a frag-
mentação interna. Ela também é simples de implementar e reconhecida como
uma técnica eficiente de gerenciamento de memória. Devido ao tamanho igual
das páginas e frames, a troca torna-se muito fácil. No entanto, a tabela de
páginas requer espaço extra na memória. Portanto, pode não ser boa solução
para um sistema com pouca memória RAM.
Gerência de memória 9

Segmentação

A segmentação é uma técnica de gerenciamento de memória na qual cada


tarefa é dividida em vários segmentos de tamanhos diferentes, um para cada
módulo que contém partes que executam funções relacionadas. Na verdade,
cada segmento é um espaço de endereço lógico diferente no programa.
Quando um processo deve ser executado, a correspondente segmentação
é carregada na memória não contígua, embora cada segmento seja carregado
em um bloco contíguo de memória disponível. O gerenciamento de memória
de segmentação funciona de maneira muito semelhante à paginação, mas
aqui os segmentos são de comprimento variável, ao passo que, na paginação,
são de tamanho fixo.
Um segmento de programa contém a função principal do programa, funções
de utilitário, estruturas de dados e assim por diante. O sistema operacional
mantém uma tabela de mapa de segmento para cada processo e uma lista de
blocos de memória livre junto com números de segmento, seu tamanho e
localizações de memória correspondentes na memória principal. Para cada
segmento, a tabela armazena o endereço inicial do segmento e o comprimento
do segmento. Uma referência a um local da memória inclui um valor que
identifica um segmento e um deslocamento.

Memória virtual
A memória virtual (virtual storage) é uma técnica de gerenciamento de memória
que fornece uma “abstração idealizada dos recursos de armazenamento que
estão realmente disponíveis em uma determinada máquina” que “cria a ilusão,
para os usuários, de uma memória muito grande (principal)”.
Usando uma combinação de hardware e software, o sistema operacional
do computador mapeia endereços de memória usados ​​por um programa, cha-
mados endereços virtuais, em endereços físicos na memória do computador. O
armazenamento principal, conforme visto por um processo ou tarefa, aparece
como um espaço de endereço contíguo ou uma coleção de segmentos contíguos.
O sistema operacional gerencia espaços de endereço virtual e a atribuição
de memória real à memória virtual. O hardware de tradução de endereços
na CPU, geralmente chamado de unidade de gerenciamento de memória ou
MMU, converte automaticamente os endereços virtuais em endereços físicos.
O software dentro do sistema operacional pode estender esses recursos para
fornecer um espaço de endereço virtual que pode exceder a capacidade da
10 Gerência de memória

memória real e, portanto, fazer referência a mais memória do que a que está
fisicamente presente no computador.
Os principais benefícios da memória virtual incluem liberar os aplicativos
de ter que gerenciar um espaço de memória compartilhada, aumentar a segu-
rança devido ao isolamento de memória e ser capaz de conceitualmente usar
mais memória do que pode estar fisicamente disponível se usada a técnica
de paginação.

Implementação da memória virtual


Sabemos que a memória virtual é uma técnica implementada usando hardware
e software. Ela mapeia endereços de memória usados ​​por um programa, cha-
mados endereços virtuais, em endereços físicos na memória do computador.
Todas as referências de memória dentro de um processo são endereços
lógicos, que são traduzidos dinamicamente em endereços físicos em tempo de
execução. Isso significa que um processo pode ser trocado para dentro e para
fora da memória principal, de modo que ocupe lugares diferentes na memória
principal em momentos diferentes durante o curso da execução.
Um processo pode ser dividido em várias partes e essas peças não precisam
estar continuamente localizadas na memória principal durante a execução. A
combinação de conversão de endereços de tempo de execução dinâmica e o
uso de tabela de páginas ou segmentos permite isso.
Se essas características estiverem presentes, não é necessário que todas
as páginas ou segmentos estejam presentes na memória principal durante a
execução. Isso significa que as páginas necessárias precisam ser carregadas na
memória sempre que requeridas. A memória virtual é implementada usando
paginação por demanda ou segmentação por demanda.

„„ Paginação por demanda — o processo de carregar a página na memória


sempre que ocorrer uma falha de página é conhecido como paginação
por demanda. Se a CPU tentar referenciar uma página que não está
atualmente disponível na memória principal, ela gerará uma interrupção,
indicando a falha de acesso à memória. O sistema operacional coloca o
processo interrompido em um estado de bloqueio. Para que a execução
prossiga, o sistema operacional deve trazer a página necessária para
a memória e ele irá procurá-la no espaço de endereço lógico. Então,
a página necessária será trazida, do espaço de endereço lógico para o
espaço de endereço físico. Os algoritmos de substituição de página são
Gerência de memória 11

usados para
​​ a tomada de decisão de substituir a página no espaço de
endereço físico. Ao fim, a tabela de páginas será atualizada de acordo e
o sinal será enviado para a CPU, para continuar a execução do programa,
e colocará o processo de volta ao estado pronto.
„„ Tempo de serviço de falha de página — o tempo gasto para atender a
falha de página é chamado de tempo de serviço de falha de página. O
tempo de serviço de falha de página inclui o tempo gasto para executar
todas as seis etapas acima.

Algoritmos de substituição de páginas


Em sistemas operacionais que usam paginação para gerenciamento de me-
mória, o algoritmo de substituição de página é necessário para decidir qual
página precisa ser substituída quando uma nova página chegar. Sempre que
uma nova página é referenciada e não está presente na memória, ocorre falha
de página e o sistema operacional substitui uma das páginas existentes pela
página recém-necessária.
Diferentes algoritmos de substituição de página sugerem diferentes manei-
ras de decidir qual página substituir. O alvo de todos os algoritmos é reduzir
o número de falhas de página.

„„ First-in-first-out (FIFO) — com o algoritmo FIFO, o sistema operacio-


nal mantém uma fila para rastrear todas as páginas na memória, com a
chegada mais recente na parte de trás (cauda da fila) e a chegada mais
antiga na frente (cabeça da fila). Quando o sistema precisa de espaço,
uma página será substituída. Com o FIFO, a página na frente da fila (a
página mais antiga) é selecionada para substituição. No entanto, FIFO
é conhecido por sofrer de um problema conhecido como anomalia
de Belady, que ocorre quando o aumento do número de quadros de
página resulta em um aumento no número de falhas de página para
um determinado padrão de acesso à memória.
„„ Menos recentemente usado (LRU) — o algoritmo de substituição
de páginas LRU controla o uso de páginas em uma janela de tempo
definida. Quando é hora de substituir uma página, ela substitui a página
menos usada recentemente.
„„ Substituição ideal da página — nesse algoritmo, as páginas são subs-
tituídas pelo critério do que não seria usado durante o maior período
de tempo no futuro.
12 Gerência de memória

No Linux (Ubuntu), você consegue verificar como está o uso de memória do compu-
tador por meio do System Monitor (Figura 3).

Figura 3. System Monitor.

Note os indicadores do meio da tela, onde temos as informações Memory and Swap
History. Trata-se de como está o consumo de memória RAM e também do uso do swap.
Nesta imagem, você pode verificar que, dos 7.4 GiB disponíveis, estamos utilizando
6.8 GiB. Como o uso da memória está quase no limite, o sistema operacional gerencia
a troca (swapping) de alguns itens para a partição swap. No caso desse computador,
temos uma partição de 22 GiB reservada para swapping. Logo, o sistema operacional
já moveu alguns itens, totalizando 8,7 GiB de uso no swap.
Gerência de memória 13

DURTE, D. O que é memória virtual. Pura Info, 22 nov. 2012. Disponível em: <https://
www.purainfo.com.br/artigos/o-que-e-memoria-virtual/>. Acesso em: 9 dez. 2018.
TANENBAUM, A. S.; BOS, H. Modern operating system. London: Pearson Education, 2014.

Leituras recomendadas
ARPACI-DUSSEAU, R. H.; ARPACI-DUSSEAU, A. C. Operating systems: three easy pieces.
Dusseau Books, 2014.
GERALDI, L. M. A. Elucidando os sistemas operacionais: um estudo sobre seus conceitos.
Clube de Autores, 2009.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Operating system concepts. New Jersey:
Wiley, 2013.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas operacionais com Java. 7. ed. São
Paulo: Elsevier Brasil, 2008.
TANENBAUM, A. S. Sistemas operacionais modernos. São Paulo: Pearson Education do
Brasil, 2009.
Conteúdo:
DICA DO PROFESSOR

O vídeo seguinte apresenta o funcionamento da memória virtual, bem como mostra um exemplo
de configuração da memória virtual no sistema operacional Windows.

Conteúdo interativo disponível na plataforma de ensino!

EXERCÍCIOS

1) Qual a função dos registradores que ficam localizados dentro da CPU?

A) Acelerar a execução dos programas e processos trabalhando em conjunto com o


processador.

B) Aumentar a capacidade de memória simulando memória no disco rígido.

C) Armazenar informações do processo que está sendo executado.

D) Armazenar os dados permanentemente no sistema, sem a necessidade de energia elétrica.

E) Armazenar informações do aplicativo Java que está sendo executado.

2) Qual a característica do gerenciamento de memória baseado na técnica de


monoprogramação?

A) Essa técnica consiste em ter somente um processo na memória durante toda sua execução.

B) Esta técnica consiste na execução de múltiplos processos aumentando a utilização da CPU.


C) Essa técnica consiste em dividir a memória em partições de tamanho fixo.

D) Essa técnica consiste em dividir a memória em partições com tamanhos variáveis.

E) Consiste na divisão da memória em unidades de alocação com um bit indicando se a


unidade está livre ou ocupada.

3) O que é a memória Virtual?

A) É uma técnica utilizada para simular memória cache no pendrive, aumentando a


capacidade de memória do computador.

B) É uma memória somente de leitura, também conhecida como memória ROM.

C) É uma técnica utilizada para dividir o disco em partições fixas que funcionam como
memória RAM.

D) É uma técnica que aloca 50% do espaço do disco rígido para simular memória RAM.

E) É uma técnica utilizada para simular memória RAM no disco rígido, aumentando a
capacidade de memória do computador.

4) Qual comando do linux permite verificar a quantidade de memória RAM instalada


no computador?

A) ls -la.

B) Quota.

C) Netstat.
D) Cat/proc/meminfo.

E) Kill.

5) Qual aplicativo do Windows permite acompanhar a quantidade de memória alocada


por processo?

A) Desfragmentador de disco.

B) Scandisk.

C) Gerenciador de Tarefas.

D) Painel de controle.

E) Barra de tarefas.

NA PRÁTICA

Características como quantidade de memória disponível, tempo de acesso e custo, são


fundamentais para o funcionamento adequado do sistema operacional. O ideal é que se tenha
sempre uma grande quantidade de memória para evitar problemas na performance, porém o
custo da memória é elevado.

Um grande desafio na relação custo-benefício para compra de memória é tentar equilibrar o


custo por bit armazenado, a velocidade de acesso da memória, e a capacidade.

Acompanhe como problemas de memória podem atrapalhar o desempenho do computador


impactando na produtividade.

João Antônio é um funcionário do setor de compras de uma empresa de tecnologia e utiliza um


computador com 2 gigabytes de memória durante 8 horas diárias para realizar suas atividades na
empresa. Ele teve alguns problemas como lentidão no computador e algumas falhas aleatórias
que fazem o sistema operacional reinicializar. Um colega de faculdade de João Antônio disse a
ele que esse pode ser um problema relacionado à memória do computador.

Conteúdo interativo disponível na plataforma de ensino!

SAIBA MAIS

Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do
professor:

Outra função do sistema operacional é controlar a gerência de memória. No próximo


vídeo, você poderá ampliar seus conhecimentos sobre o tema.

Conteúdo interativo disponível na plataforma de ensino!

Amplie seus conhecimentos sobre as técnicas de gerenciamento de memória, acessando a


próxima dica de leitura.

Conteúdo interativo disponível na plataforma de ensino!

Gerência de Memória

Conteúdo interativo disponível na plataforma de ensino!

Você também pode gostar