Você está na página 1de 29

Aula 3

Sistemas Operacionais

1
28

Prof. André Roberto Guerra


Conversa Inicial

2
28
Estrutura e objetivos

Sem memória de leitura/escrita de


informações pela CPU, não há computador
digital com programa armazenado
Nesta aula, apresentaremos a gerência de
memória, uma tarefa elementar que pode
fazer toda a diferença na escolha do sistema
3
28

operacional mais adequado aos objetivos


iniciais de conveniência e eficiência,
descritos em cinco temas
Organização dos temas
Gerência de memória
Conceitos e definições de gestão de
memória
Tipos e padrões de memórias – uma
4
classificação básica
28

Alocação
Estratégias de paginação
Memória virtual
Conceitos e definições
de gestão de memória

5
28
Uma visão geral

Fundamentais para qualquer sistema de


computação, temos as memórias, em
especial as de usuário (RAM – random-access
memory), aleatórias no sentido de que os
6
processos podem acessar localizações de
dados em qualquer ordem, ou, simplesmente,
28

memória principal
Memórias são um recurso escasso e caro
Em sistema multiprogramável, a quantidade de
memória disponível contribui diretamente no
número de processos a serem alocados e na
capacidade de processamento do sistema
A meta de manter o maior número de
processos na memória principal, maximizando
o compartilhamento da CPU e demais recursos,
7
combate a ociosidade desta
28

A gestão eficiente desse precioso recurso


é fundamental para o bom desempenho de
qualquer sistema operacional, tão relevante
quanto quaisquer definições técnicas
Futuramente, apresentaremos exemplo real
(estudo de caso Windows 10 versus Kali Linux)
O gerenciador de memória é o componente do
SO responsável pela organização da memória
Com as estratégias que determinam como o
espaço de memória disponível é alocado a
processos e como responder a mudanças
na utilização da memória de um processo
8
28

Interage com o hardware de gerenciamento


de memória de propósito específico (se houver
algum disponível) para melhorar o desempenho
Tipos e padrões de memórias

9
28
Uma classificação básica

Capacidade de armazenamento – tamanho


em bytes)
Velocidade – taxa de transferência
e tempo de acesso
Custo de armazenamento –
10
28

material/monetário
Consumo de energia e volatilidade
Capacidade (armazenamento) Velocidade (taxa de transferência)
≈ 128 KB (kilobytes) * Indefinida
Registradores

≈ 4 MB (megabytes) Cache L1
≈ 32 MB (megabytes) Cache L2 ≈ 256 GB/s
≈ 256 MB (megabytes) Cache L3

Memória principal RAM


≈ 2 TB (terabytes) ≈ 205 GB/s *DDR4
(random-access memory)

Memória removível
≈ 4 TB (terabytes) ≈ 16 GB/s
11
Flash Memory
28

≈ 16 TB Armazenamento local – memória secundária ≈ 256 MB/s


≈ 128 TB Discos magnéticos (HD) e/ou de estado sólido (SSD) ≈ 16 GB/s

≈ 128 GB Mídias óticas (Blu-Ray) e Fitas magnéticas (DAT) ≈ 512 MB/s


≈ 64 TB Armazenamento de longo prazo – Storage&BackUP ≈ 1 GB/s

Fonte: Guerra, 2020.


Memória volátil
Registradores: usados em geral para endereçar
a memória. São voláteis. Bus size = word
Cache: voláteis, são rápidas e pequenas. Do
francês cacher: esconder. Contêm os dados e/ou
instruções mais recentes da CPU. Intermediárias
entre a CPU e a RAM – reflexões sobre caching
12
28 Principal: primária e volátil. Bit: unidade básica
de memória formada por conjunto de células (ou
posições), mesmo número de bits e endereços
RAM: célula acessada sem percorrer endereços
anteriores
Memória secundária (não volátil)
Endereçada sequencialmente (DAT)
Armazenamento de dados em longo prazo
Diversos tipos e modelos: discos rígidos
(HDs) convencionais e removíveis, memórias
Flash, discos de estado sólido (SSD), discos
13
28 óticos
SO modernos utilizam Flash para expandir
a memória principal (memória virtual)
Gerência de arquivos
Alocação

14
28
Definições

Todos os softwares dependem de memória


disponível para serem executados
Tarefas de gestão das memórias; estratégia
para evitar conflitos entre aplicações;
garantia de espaço para execução;
15
28 principais conceitos relacionados
Usando o hardware, o SO prevê e
disponibiliza memória para os
processos (ou para o kernel)
Alocar memória é reservar áreas de memória
RAM para processos. Ao fim de seu uso,
cada área é liberada (ou deveria ser) e
redisponibilizada
Alocador de memória é o mecanismo
responsável pela alocação e liberação
de áreas de memória
16
28

Alocadores de: memória física; espaço


de núcleo; e espaço de usuário
Estratégias de gerenciamento e alocação

Estratégias de busca, posicionamento


e substituição
Alocação: contígua simples; particionada
17
estática ou fixa; particionada dinâmica
28

Estratégias de alocação são, em síntese,


as estratégias de posicionamento
First-fit (o primeiro que se encaixar ou o que
primeiro couber)
Best-fit (o que melhor se encaixar ou melhor
couber)
Worst-fit (o que pior se encaixar ou pior
18
28
couber)
Next-fit (o próximo que se encaixar ou
próximo que couber)
Estratégias de paginação

19
28
Definição

Programas e dados podem ser divididos em


pedaços de tamanho fixo – as páginas
Estratégias de posicionamento são triviais e
gerenciadas com políticas de alocação e
20
substituição de páginas
28

A política de alocação determina quantos


frames cada processo pode manter na RAM
(fixo/variável)
A política de substituição de páginas (page out
e page in) ocorre quando o processo atinge o
número máximo de páginas que foram alocadas
Paginação em disco – uso de técnicas para que o
armazenamento secundário seja a extensão da
memória RAM, transparente para as aplicações
21
28
Partes ociosas transferidas para a memória
secundária, liberando a memória RAM. Caso
algum processo tente acessar esse conteúdo
depois, deverá ser trazido de volta à memória
Diversas técnicas para a extensão da memória
RAM
Overlay: memória dividida em área do SO,
área do módulo principal do programa e
área de troca entre os módulos secundários
(área de overlay)
Swapping: técnica para programas que
22 esperam por memória livre para serem
executados
28

Paging: mover páginas individuais, conjuntos


de páginas ou mesmo segmentos da memória
principal para a secundária
Algoritmos de substituição de páginas

Critérios usados para escolha


Idade da página
Frequência de acessos à página
Data do último acesso
23
28
Prioridade do processo proprietário
Conteúdo da página
Páginas especiais
Principais algoritmos de substituição de páginas
Ótimo
Aleatório (random)
FIFO (first in, first out)
LFU (least frequently used)

24
LRU (least recently used)
28

NRU (not recently used)


FIFO com buffer de páginas
FIFO circular
Memória virtual

25
28
Definição

Técnica sofisticada e poderosa de gerência


de memória, em que as memórias principal
e secundária são combinadas, causando ao
usuário a ilusão de existir uma memória
26
muito maior que a capacidade real da
memória principal
28

Dois tipos de endereços: físicos (ou reais)


e lógicos (ou virtuais)
Por desempenho, a tradução de endereços
lógicos em físicos é feita por componente
específico do hardware do computador –
unidade de gerência de memória (MMU –
memory management unit), integrada ao
chip da própria CPU
27
28
A memória virtual permite implementar
a proteção de memória do núcleo e dos
processos entre si, fundamentais para a
segurança e estabilidade do sistema
As principais estratégias de tradução de
endereços das MMU ocorrem por partições
(primeiros sistemas de memória virtual), por
segmentos e por páginas (sistemas atuais)
Paginação: endereçamento real dividido
em blocos de mesmo tamanho, chamados
28 páginas
28

Segmentação: endereçamento virtual


dividido em blocos de tamanhos diferentes,
chamados segmentos
29
28

Você também pode gostar