Aula 12 - Gerência de Memória

Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 40

TÉCNICO EM INFORMÁTICA

Sistemas Operacionais

Aula 12 – Gerência de Memória

Prof. André R. Zavan


OBJETIVO AULA
▪ Entender como o sistema operacional gerencia a
memória.

▪ Conhecer as principais técnicas para alocação de


memória.

▪ Visualizar a importância da utilização da memória


nos sistemas
computacionais.
2
Introdução
Abordaremos nessa aula as principais técnicas para
gerenciamento de memória pelos sistemas operacionais atuais.

A memória principal do computador tem como função alocar os


programas que estão sendo executados pelo sistema
operacional em determinado momento.

3
Introdução
• Programas só executam se estiverem na memória principal.
• Quanto mais processos estiverem na memória principal,
melhor será o compartilhamento do processador.
• Necessidade de uso otimizado.
• O sistema operacional não deve ocupar muita memória.

• A gerência de memória caracteriza-se como um dos


fatores mais importantes em um projeto de sistemas
operacionais.
4
Introdução
De uma forma geral, os programas são armazenados na
memória secundária, para que possam ser acessados sempre
que necessário.

Entretanto, o processador somente executa programas


(instruções) que estiverem na memória principal, sendo
necessário transferir os programas da memória
secundária para a memória principal, antes de serem
executados.

5
Swapping
Mesmo, muitas vezes, sem ter espaço livre em memória
principal, o sistema
operacional deve prover que novos processos sejam aceitos e
executados normalmente.

Isto é possível através da transferência de programas em


memória principal para a memória secundária, liberando,
neste caso, espaço para que novos processos sejam
executados.
6
Swapping

7
Técnicas para Gerenciamento de Memória

Outro problema relacionado à memória que está no contexto da


gerência de
memória está em permitir a execução de programas que
sejam maiores que
a memória física disponível, utilizando para isso técnicas
como o overlay e a memória virtual.

8
Alocação Contígua Simples
Este tipo de alocação era implementada nos primeiros
sistemas operacionais e ainda é encontrada em sistemas
monoprogramáveis. Esta técnica consiste em dividir a
memória principal em duas áreas:

▪ Área do sistema operacional.


▪ Área do usuário.

9
Alocação Contígua Simples
Nesta técnica, um usuário não pode usar uma área maior do
que a disponível (para execução de seus programas).

Um dos grandes problemas da alocação contígua simples


é que um programa de usuário pode acessar a área do
sistema operacional, ocasionando diversos problemas (uma
vez que o usuário tem controle total sobre a memória, podendo
ter acesso a qualquer posição).

10
Alocação Contígua Simples
Para evitar tal problema, alguns sistemas implementam
proteção através de registradores que limitam as áreas do
sistema operacional e do usuário.

11
Técnica de Overlay
A técnica de overlay visa resolver (em partes) o problema
ocasionado pelo desperdício de espaço em memória da técnica
anterior (alocação contígua de memória).

Para resolver tal problema a técnica de overlay, propõe o


compartilhamento de áreas de memória livres, através de
programas independentes, fazendo com que permaneça na
memória principal somente o módulo principal de um
programa.

12
Técnica de Overlay

imagine um programa
composto por três
módulos principal,
cadastro de clientes e
impressão).

Neste exemplo que os


módulos de cadastro de
clientes e impressão são
independentes.

13
Alocação Particionada
Com a evolução dos sistemas operacionais (dos
monoprogramáveis para os multiprogramáveis) tornou-se
necessário um melhor aproveitamento dos recursos disponíveis.

Tornar eficiente o uso do processador e garantir que o maior


número possível de programas estivessem em memória, eram
alguns dos desafios que novas técnicas de gerenciamento de
memória deveriam prover.

14
Alocação Particionada ESTÁTICA
A alocação particionada estática ou fixa, tinha como objetivo
dividir a memória em pedaços de tamanho fixo, chamados de
partições.

O tamanho de cada partição era estabelecido na inicialização


do sistema operacional e calculado segundo o tamanho
dos programas que executariam no ambiente.

Sempre que fosse necessária alguma alteração do


particionamento previamente alocado, uma nova inicialização 15
Alocação Particionada ESTÁTICA

Problema de
fragmentação interna.
Observe o processo C
que será executado na
partição 3.
(Desperdício)
desperdício

16
Alocação Particionada DINÂMICA
Pensando em sanar tal problema, a alocação particionada
dinâmica surgiu com a ideia de eliminar o conceito de
partições de tamanho fixo.

Assim, cada programa utilizaria seu próprio espaço em


memória, fazendo de sua dimensão o tamanho de sua
partição.

Neste esquema, como cada programa utilizaria sua própria


dimensão, não teríamos mais o problema da fragmentação 17
Alocação Particionada DINÂMICA

18
Alocação Particionada DINÂMICA
Entretanto, existe um problema neste tipo de alocação que
talvez não seja tão visível, porém preocupante, estamos
falando da fragmentação externa.

Este problema ocorre quando os programas que foram alocados


em memória principal, começam a terminar sua execução,
deixando espaços de memória entre programas, de forma
que estes espaços são menores que os tamanhos necessários
aos programas que serão carregados para a memória.
19
Alocação Particionada DINÂMICA

O problema disso é que


mesmo tendo espaços de
memória disponíveis, não é
possível alocar um espaço
para o próximo processo.

20
Alocação Particionada DINÂMICA
Para resolver o problema da fragmentação externa existem
duas situações principais.

A primeira é que conforme os programas vão encerrando sua


execução, os espaços adjacentes podem ser unidos, como
forma de ter maior espaço disponível para alocação de um
programa.

A outra alternativa seria compactar os programas em


execução um ao lado do outro e juntar os espaços de memória
livres, a este processo denominados de relocação dinâmica. 21
Estratégias de alocação de partição
Para que o sistema operacional possa gerenciar a memória
principal da melhor forma possível, são usadas
basicamente três estratégias.

Estas visam evitar ou diminuir o problema da fragmentação


externa. Geralmente a estratégia leva em conta o tamanho do
programa que será executado.

Vamos conhecer agora como funcionam (basicamente) as


estratégias de alocação de partição. 22
Best-fit
Conhecida como “melhor alocação”, esta estratégia de
alocação, procura solicitar o menor espaço em memória
disponível suficiente para o tamanho do programa a ser
alocado.

Este algoritmo ordena as áreas de memória disponíveis pelo


tamanho da mesma, diminuindo o tempo de resposta em buscar
um espaço específico.

A desvantagem deste algoritmo é a fragmentação. 23


Menor espaço em memória
disponível suficiente para o
tamanho do programa a ser
alocado.
24
Worst-fit
Na estratégia worst-fit é escolhido o maior espaço disponível
em memória principal.

Apesar de selecionar os maiores espaços em memória, esta


estratégia deixa espaços livres maiores, permitindo que um
maior número de programas possa utilizar a memória, fazendo
com que a fragmentação diminua.

25
É escolhido o maior espaço
disponível em memória principal.

26
First-fit
Como o próprio nome sugere, o primeiro espaço de memória
com espaço suficiente para alocar o programa é
selecionado.

Esta estratégia consome menos recursos do sistema, pois o seu


algoritmo organiza as áreas de memória por tamanho, sendo
bastante provável que encontre a área procurada com rapidez.

27
o primeiro espaço de memória
com espaço suficiente para
alocar o programa é selecionado..

28
Outros tipos de alocação

▪ Alocação Segmentada e Paginada

29
Resumo
Nessa aula, vimos como o gerenciamento de memória é
fundamental para que o sistema operacional possa executar
suas tarefas de maneira eficiente.
Foi possível conhecer também as principais técnicas utilizadas
para a alocação e gerenciamento de memória pelo sistema
operacional.

Para fixar o conteúdo visto em cada aula, é importante que você


realize os exercícios de aprendizagem.
30
Atividades de Aprendizagem I
1. Cite e explique três funções básicas da memória principal.

2. Diferencie alocação contígua simples de alocação


particionada estática
e dinâmica.

3. Diferencie as estratégias de alocação: best-fit, worst-fit e


first-fit.

4.Descreva o que é swapping. 31


Atividades de Aprendizagem – II

Considere um sistema cuja gerência de memória é feita através de


partições variáveis. Inicialmente, existem as seguintes páginas: 10K, 4K,
20K, 18K, 7K, 9K, 12K e 13K, nessa ordem.

Desenhe a memória com suas páginas e mostre como as páginas serão


ocupadas pelos processos de tamanho: (A) 5K, (B) 10K, (C) 15K, (D) 8K, (E)
3K, (F) 7K e (G) 6K. Considere essa ordem de solicitação. Simule os
seguintes algoritmos:

▫ a. First-fit
▫ b. Best-fit
▫ c. Worst-fit 32
FIRST-FIT
AFIRST-FIT
 5K
B 10K
C 15K
D  8K
E  3K
F  7K
G  6K

33
FIRST-FIT A – 5K

E – 3K

AFIRST-FIT
 5K
B – 10K
B 10K
D – 8K
C 15K
D  8K C – 15K

E  3K F – 7K

F  7K G – 6K

G  6K

34
WORST-FIT
AFIRST-FIT
 5K
B 10K
C 15K
D  8K
E  3K
F  7K
G  6K

35
WORST-FIT F – 7K

WORST-FIT
A  5K A – 5K

B 10K C – 15K

C 15K
B – 10K
D  8K
E  3K
F  7K G – 6K

E – 3K
G  6K
D – 8K
36
BEST-FIT
AFIRST-FIT
 5K
B 10K
C 15K
D  8K
E  3K
F  7K
G  6K

37
BEST-FIT B – 10K

ABEST-FIT
 5K
B 10K
C 15K
D  8K C – 15K

E – 3K
E  3K A – 5K

F  7K D – 8K

G  6K F – 7K

G – 6K
38
FIM
Alguma questão?

39
5.3.2.1 – Alocacao particionada estática – frag. interna
5.3.2.2 – Alocacao particionada dinâmica - frag. Externa.

40

Você também pode gostar