Sistemas Operacionais: Cleverson Lopes Ledur
Sistemas Operacionais: Cleverson Lopes Ledur
Sistemas Operacionais: Cleverson Lopes Ledur
OPERACIONAIS
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.
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
Swapping
Alocação de memória
Fragmentação
Paginação
Segmentação
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.
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.
No Linux (Ubuntu), você consegue verificar como está o uso de memória do compu-
tador por meio do System Monitor (Figura 3).
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: