SlideShare uma empresa Scribd logo
Sistemas
Operacionais
(Parte 3)
PROF SILVANO OLIVEIRA
prof.silvano.oliveira@gmail.com
Ementa da disciplina
 Estruturas de Sistemas operacionais;
 Sistemas multiprogramáveis;
 Gerência de processos;
 Gerência de memória física;
 Gerência de memória virtual;
 Gerência de sistemas de arquivos;
 Gerenciamento de dispositivos;
 Segurança e proteção;
 Introdução aos sistemas operacionais distribuídos.
2
Bibliografia básica
 Sistemas operacionais: Projeto e
implementação. Andrew S. Tanenbaum; Albert
S. Woodhull;
 Sistemas operacionais: Conceitos e aplicações.
Abraham Sílberschatz; Peter Galvin; Greg
Gagne;
 Arquitetura de sistemas operacionais. Francis B.
Machado, Luiz Paulo Maia.
3
Gerência de memória 4
Sistema
operacional
Gerência do
processador
Gerência de
memória
Gerência de
dispositivos
Gerência de
arquivos
Interface
gráfica
Gerência de
proteção
Outros
suportes
Suporte de
rede
Gerência de memória
 Historicamente a memória principal sempre foi
vista como um recurso escasso e caro;
 Preocupação dos projetistas: desenvolver
sistemas operacionais que não ocupassem
muito espaço na memória e ao mesmo tempo
otimizassem a utilização dos recursos;
 Mesmo com o barateamento do hardware, o
gerenciamento de memória constitui um dos
principais módulos do sistema operacional.
5
Gerência de memória
Principais funções do módulo de
gerenciamento de memória:
Alocar memória para os processos;
Desalocar memória dos processos;
Gerenciar troca entre memória
principal e secundária.
6
Gerência de memória 7
Gerência de memória
 Proporção de tamanho e tempo de acesso
8
Gerência de memória 9
Gerência de memória
Gerenciamento da memória é a
ferramenta utilizada para permitir aos
programas em execução utilizarem a
memória do computador para
armazenar
Instruções;
Dados que serão manipulados.
10
Gerência de memória
 Principais objetivos a serem alcançados na gerência de
memória
 Disponibilizar área de armazenamento para processos
executarem;
 Proteger execução dos processos contra possíveis falhas;
 Criar ambiente de execução com desempenho satisfatório;
 Compartilhamento de memória entre processos
(comunicação);
 Acesso transparente de memória por desenvolvedores.
11
Gerência de memória
Gerenciamento básico de memória
Primeiros sistemas operacionais;
Monoprogramáveis;
ALOCAÇÃO CONTÍGUA;
Memória principal dividia entre o
sistema operacional e o programa em
execução.
12
Alocação contígua 13
Memória
Sistema
Operacional
Programa do
usuário
• Processo tem acesso a
toda a memória;
• Sistemas
monoprogramáveis
Gerência de memória
 Maioria dos sistemas operacionais são
multiprogramáveis – mais de 1 processo;
 Forma mais simples:
 Divisão da memória principal em partições estáticas;
 Tamanhos definidos;
 Tamanhos estabelecidos na inicialização do sistema
operacional;
 ALOCAÇÃO PARTICIONADA ESTÁTICA ou
ALOCAÇÃO FIXA.
14
Alocação fixa
Processo é colocado em uma fila na
entrada de cada partição;
Escolha da partição: menor partição
capaz de armazená-lo;
Caso o processo não ocupe o
espaço total de sua partição, o
restante é inutilizado.
15
Alocação fixa 16
Alocação fixa
 Problemas:
 Filas com grande quantidade de processos
enquanto outras filas vazias ou com poucos
processos;
 Espaço desperdiçado nas partições.
 Exemplo: Partição 4 com 3 processos e
partição 2 vazia (imagem anterior).
 Como resolver?
 Implementar o método com uma fila única.
17
Alocação fixa com fila única 18
• Quando determinada
partição está livre, o
mais próximo do início
da fila que melhor se
ajusta à essa partição
é carregado.
Alocação fixa com fila única
Problemas
Grande desperdício de memória;
Processo pode ocupar somente um
pequeno pedaço de uma partição;
Restante da partição fica inutilizado.
Como resolver?
Alocação com partições variáveis.
19
Alocação com partes variáveis
 Tamanho das partições ajustado
dinamicamente quando os processos chegam
na memória;
 O processo utilizará um espaço de memória
necessário, tornando sua partição;
 Não há mais problemas de fragmentação
interna na partição, pois serão definidas a partir
da quantidade total alocada pelo processo.
20
Alocação com partições variáveis 21
Alocação com partições variáveis
 Processos definem o tamanho de sua partição
ao chegarem na memória;
 Quando não há mais espaço disponível, o
processo mais “antigo” na memória é retirado
para dar espaço para o próximo.
 O processo de retirar um processo de memória,
atualizar em disco e colocar outro processo no
lugar é chamado de TROCA.
22
Alocação com partições variáveis
 A TROCA consiste em trazer um processo inteiro,
executá-lo temporariamente e então devolve-lo ao
disco;
 Isso acontece quando a memória principal
disponível é insuficiente para manter todos os
processos carregados
 Todos os processos na memória principal seria a solução
ótima.
 Outra estratégia que permite que apenas parte do
programa fique em memória principal: Memória virtual.
23
Alocação com partições variáveis
 Mais flexível que o método com partição estática;
 Flexibilidade complica a tarefa de alocar e desalocar a
memória;
 Complica o monitoramento da memória utilizada;
 Os espaços alocados não são mais fixos, por isso não há como
saber antecipadamente a quantidade de memória utilizada.
 Há 2 formas de monitorar a memória utilizada
 Mapa de bits;
 Lista encadeada.
24
Mapa de bits
Memória é dividia em unidades
de alocação;
Para cada unidade é associado
um bit no mapa;
Valor 0: livre, valor 1: ocupado.
25
Mapa de bits 26
Mapa de bits
 Ponto crucial: definição do tamanho da
unidade de alocação.
 Unidade muito pequena: mapa de bits muito
grande;
 Unidade muito grande: mapa de bits menor,
porém uma quantia de memória poderá ser
desperdiçada na última unidade se o tamanho
do processo não for um múltiplo exato da
unidade de alocação.
27
Lista encadeada
 Lista encadeada dos segmentos de memória
alocados e livres;
 Um segmento pode ser um processo ou uma
lacuna entre dois processos;
 Cada nó da lista é formado por uma entrada
especificando se é um P (processo) ou L
(lacuna), o endereço onde se inicia a
quantidade de unidades de alocação e um
ponteiro para a próxima entrada.
28
Lista encadeada 29
Memória virtual
Estender a memória principal através
da memória secundária;
Dá a impressão ao usuário de uma
maior quantidade de memória
principal disponível;
Também chamado de memória de
swap.
30
Memória virtual 31
Memória virtual 32
Dúvidas última aula
 Barramento de endereçamento 32 bits
 2^32 = 4GB (2^30 = GB; 2^2 = 4)
 Barramento de endereçamento 64 bits
 2^64 = 16EB (2^60 = EB; 2^4 = 16)
 O sistema operacional pode limitar a quantidade de memória
alocada
 Exemplo: Windows 7 (alocação máxima RAM)
 Starter: 2GB
 Home Basic: 8GB
 Home Premium: 16GB
 Professional: 192GB
 Enterprise: 192GB
 Ultimate: 192GB
33
Dúvidas última aula
 Memória virtual do Windows
34
Dúvidas última aula 35
Paginação
 Esquema de gerenciamento de memória em que o
espaço de endereçamento físico de um processo não é
contíguo;
 A paginação evita a fragmentação gerada pela
alocação dinâmica;
 Programas são capazes de gerar endereços virtuais;
 Conjunto de endereços virtuais formam o espaço de
endereçamento virtual.
36
Paginação
 Os endereços virtuais não vão diretamente para o
barramento da memória;
 Passam antes por uma unidade chamada MMU
(Memory Management Unit – Unidade de
gerenciamento de memória);
 A MMU mapeia um endereço virtual para um endereço
lógico;
 O endereçamento virtual é dividido em unidades
chamadas de páginas.
37
Paginação 38
Paginação 39

Mais conteúdo relacionado

Semelhante a SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf

2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
vini_campos
 
Gestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptxGestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptx
AlbertoFilomenoCipri
 
Sistemas operacionais memória no linux
Sistemas operacionais   memória no linuxSistemas operacionais   memória no linux
Sistemas operacionais memória no linuxCarlos Melo
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
Alexandre Duarte
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
Frank macoo
 
Apostila computacao
Apostila computacaoApostila computacao
Apostila computacaowebphotoshop
 
Sistemas Operacionais 13 gerenciamento de memória
Sistemas Operacionais  13   gerenciamento de memóriaSistemas Operacionais  13   gerenciamento de memória
Sistemas Operacionais 13 gerenciamento de memória
Mauro Duarte
 
S.o aula 3132
S.o aula 3132S.o aula 3132
S.o aula 3132
Armando Rivarola
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
Silvano Oliveira
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
audineisilva1
 
Gerenciamento memoria
Gerenciamento memoriaGerenciamento memoria
Gerenciamento memoria
Rodrigo Piovesana
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
Adir Kuhn
 
Htm trabalho
Htm trabalhoHtm trabalho
Htm trabalho
ManuelFreitas24
 
S.o aula 1920
S.o aula 1920S.o aula 1920
S.o aula 1920
Armando Rivarola
 

Semelhante a SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf (20)

2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Gestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptxGestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptx
 
Gerência de memória
Gerência de memóriaGerência de memória
Gerência de memória
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Sistemas operacionais memória no linux
Sistemas operacionais   memória no linuxSistemas operacionais   memória no linux
Sistemas operacionais memória no linux
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Apostila computacao
Apostila computacaoApostila computacao
Apostila computacao
 
Sistemas Operacionais 13 gerenciamento de memória
Sistemas Operacionais  13   gerenciamento de memóriaSistemas Operacionais  13   gerenciamento de memória
Sistemas Operacionais 13 gerenciamento de memória
 
S.o aula 3132
S.o aula 3132S.o aula 3132
S.o aula 3132
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Imprimir
ImprimirImprimir
Imprimir
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Gerenciamento memoria
Gerenciamento memoriaGerenciamento memoria
Gerenciamento memoria
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Htm trabalho
Htm trabalhoHtm trabalho
Htm trabalho
 
S.o aula 1920
S.o aula 1920S.o aula 1920
S.o aula 1920
 

Mais de Silvano Oliveira

PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)
Silvano Oliveira
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdf
Silvano Oliveira
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
Silvano Oliveira
 
ADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux ServerADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux Server
Silvano Oliveira
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de Redes
Silvano Oliveira
 
Revisão Windows Server
Revisão Windows ServerRevisão Windows Server
Revisão Windows Server
Silvano Oliveira
 
01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf
Silvano Oliveira
 
Alg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfAlg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdf
Silvano Oliveira
 
CON08 - VLAN.pdf
CON08 - VLAN.pdfCON08 - VLAN.pdf
CON08 - VLAN.pdf
Silvano Oliveira
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
Silvano Oliveira
 
CON01 - Rede Local.pdf
CON01 - Rede Local.pdfCON01 - Rede Local.pdf
CON01 - Rede Local.pdf
Silvano Oliveira
 
CON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdfCON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdf
Silvano Oliveira
 
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
Silvano Oliveira
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
Silvano Oliveira
 
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdfSO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
Silvano Oliveira
 
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdfSO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
Silvano Oliveira
 
Con01 rede local
Con01   rede localCon01   rede local
Con01 rede local
Silvano Oliveira
 
Con00 ativos de rede
Con00   ativos de redeCon00   ativos de rede
Con00 ativos de rede
Silvano Oliveira
 
Bd ex02 relacionamento
Bd ex02   relacionamentoBd ex02   relacionamento
Bd ex02 relacionamento
Silvano Oliveira
 
Bd ex01 select
Bd ex01   selectBd ex01   select
Bd ex01 select
Silvano Oliveira
 

Mais de Silvano Oliveira (20)

PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdf
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
 
ADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux ServerADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux Server
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de Redes
 
Revisão Windows Server
Revisão Windows ServerRevisão Windows Server
Revisão Windows Server
 
01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf
 
Alg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfAlg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdf
 
CON08 - VLAN.pdf
CON08 - VLAN.pdfCON08 - VLAN.pdf
CON08 - VLAN.pdf
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
CON01 - Rede Local.pdf
CON01 - Rede Local.pdfCON01 - Rede Local.pdf
CON01 - Rede Local.pdf
 
CON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdfCON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdf
 
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
 
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdfSO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
 
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdfSO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
 
Con01 rede local
Con01   rede localCon01   rede local
Con01 rede local
 
Con00 ativos de rede
Con00   ativos de redeCon00   ativos de rede
Con00 ativos de rede
 
Bd ex02 relacionamento
Bd ex02   relacionamentoBd ex02   relacionamento
Bd ex02 relacionamento
 
Bd ex01 select
Bd ex01   selectBd ex01   select
Bd ex01 select
 

SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf

  • 1. Sistemas Operacionais (Parte 3) PROF SILVANO OLIVEIRA prof.silvano.oliveira@gmail.com
  • 2. Ementa da disciplina  Estruturas de Sistemas operacionais;  Sistemas multiprogramáveis;  Gerência de processos;  Gerência de memória física;  Gerência de memória virtual;  Gerência de sistemas de arquivos;  Gerenciamento de dispositivos;  Segurança e proteção;  Introdução aos sistemas operacionais distribuídos. 2
  • 3. Bibliografia básica  Sistemas operacionais: Projeto e implementação. Andrew S. Tanenbaum; Albert S. Woodhull;  Sistemas operacionais: Conceitos e aplicações. Abraham Sílberschatz; Peter Galvin; Greg Gagne;  Arquitetura de sistemas operacionais. Francis B. Machado, Luiz Paulo Maia. 3
  • 4. Gerência de memória 4 Sistema operacional Gerência do processador Gerência de memória Gerência de dispositivos Gerência de arquivos Interface gráfica Gerência de proteção Outros suportes Suporte de rede
  • 5. Gerência de memória  Historicamente a memória principal sempre foi vista como um recurso escasso e caro;  Preocupação dos projetistas: desenvolver sistemas operacionais que não ocupassem muito espaço na memória e ao mesmo tempo otimizassem a utilização dos recursos;  Mesmo com o barateamento do hardware, o gerenciamento de memória constitui um dos principais módulos do sistema operacional. 5
  • 6. Gerência de memória Principais funções do módulo de gerenciamento de memória: Alocar memória para os processos; Desalocar memória dos processos; Gerenciar troca entre memória principal e secundária. 6
  • 8. Gerência de memória  Proporção de tamanho e tempo de acesso 8
  • 10. Gerência de memória Gerenciamento da memória é a ferramenta utilizada para permitir aos programas em execução utilizarem a memória do computador para armazenar Instruções; Dados que serão manipulados. 10
  • 11. Gerência de memória  Principais objetivos a serem alcançados na gerência de memória  Disponibilizar área de armazenamento para processos executarem;  Proteger execução dos processos contra possíveis falhas;  Criar ambiente de execução com desempenho satisfatório;  Compartilhamento de memória entre processos (comunicação);  Acesso transparente de memória por desenvolvedores. 11
  • 12. Gerência de memória Gerenciamento básico de memória Primeiros sistemas operacionais; Monoprogramáveis; ALOCAÇÃO CONTÍGUA; Memória principal dividia entre o sistema operacional e o programa em execução. 12
  • 13. Alocação contígua 13 Memória Sistema Operacional Programa do usuário • Processo tem acesso a toda a memória; • Sistemas monoprogramáveis
  • 14. Gerência de memória  Maioria dos sistemas operacionais são multiprogramáveis – mais de 1 processo;  Forma mais simples:  Divisão da memória principal em partições estáticas;  Tamanhos definidos;  Tamanhos estabelecidos na inicialização do sistema operacional;  ALOCAÇÃO PARTICIONADA ESTÁTICA ou ALOCAÇÃO FIXA. 14
  • 15. Alocação fixa Processo é colocado em uma fila na entrada de cada partição; Escolha da partição: menor partição capaz de armazená-lo; Caso o processo não ocupe o espaço total de sua partição, o restante é inutilizado. 15
  • 17. Alocação fixa  Problemas:  Filas com grande quantidade de processos enquanto outras filas vazias ou com poucos processos;  Espaço desperdiçado nas partições.  Exemplo: Partição 4 com 3 processos e partição 2 vazia (imagem anterior).  Como resolver?  Implementar o método com uma fila única. 17
  • 18. Alocação fixa com fila única 18 • Quando determinada partição está livre, o mais próximo do início da fila que melhor se ajusta à essa partição é carregado.
  • 19. Alocação fixa com fila única Problemas Grande desperdício de memória; Processo pode ocupar somente um pequeno pedaço de uma partição; Restante da partição fica inutilizado. Como resolver? Alocação com partições variáveis. 19
  • 20. Alocação com partes variáveis  Tamanho das partições ajustado dinamicamente quando os processos chegam na memória;  O processo utilizará um espaço de memória necessário, tornando sua partição;  Não há mais problemas de fragmentação interna na partição, pois serão definidas a partir da quantidade total alocada pelo processo. 20
  • 21. Alocação com partições variáveis 21
  • 22. Alocação com partições variáveis  Processos definem o tamanho de sua partição ao chegarem na memória;  Quando não há mais espaço disponível, o processo mais “antigo” na memória é retirado para dar espaço para o próximo.  O processo de retirar um processo de memória, atualizar em disco e colocar outro processo no lugar é chamado de TROCA. 22
  • 23. Alocação com partições variáveis  A TROCA consiste em trazer um processo inteiro, executá-lo temporariamente e então devolve-lo ao disco;  Isso acontece quando a memória principal disponível é insuficiente para manter todos os processos carregados  Todos os processos na memória principal seria a solução ótima.  Outra estratégia que permite que apenas parte do programa fique em memória principal: Memória virtual. 23
  • 24. Alocação com partições variáveis  Mais flexível que o método com partição estática;  Flexibilidade complica a tarefa de alocar e desalocar a memória;  Complica o monitoramento da memória utilizada;  Os espaços alocados não são mais fixos, por isso não há como saber antecipadamente a quantidade de memória utilizada.  Há 2 formas de monitorar a memória utilizada  Mapa de bits;  Lista encadeada. 24
  • 25. Mapa de bits Memória é dividia em unidades de alocação; Para cada unidade é associado um bit no mapa; Valor 0: livre, valor 1: ocupado. 25
  • 27. Mapa de bits  Ponto crucial: definição do tamanho da unidade de alocação.  Unidade muito pequena: mapa de bits muito grande;  Unidade muito grande: mapa de bits menor, porém uma quantia de memória poderá ser desperdiçada na última unidade se o tamanho do processo não for um múltiplo exato da unidade de alocação. 27
  • 28. Lista encadeada  Lista encadeada dos segmentos de memória alocados e livres;  Um segmento pode ser um processo ou uma lacuna entre dois processos;  Cada nó da lista é formado por uma entrada especificando se é um P (processo) ou L (lacuna), o endereço onde se inicia a quantidade de unidades de alocação e um ponteiro para a próxima entrada. 28
  • 30. Memória virtual Estender a memória principal através da memória secundária; Dá a impressão ao usuário de uma maior quantidade de memória principal disponível; Também chamado de memória de swap. 30
  • 33. Dúvidas última aula  Barramento de endereçamento 32 bits  2^32 = 4GB (2^30 = GB; 2^2 = 4)  Barramento de endereçamento 64 bits  2^64 = 16EB (2^60 = EB; 2^4 = 16)  O sistema operacional pode limitar a quantidade de memória alocada  Exemplo: Windows 7 (alocação máxima RAM)  Starter: 2GB  Home Basic: 8GB  Home Premium: 16GB  Professional: 192GB  Enterprise: 192GB  Ultimate: 192GB 33
  • 34. Dúvidas última aula  Memória virtual do Windows 34
  • 36. Paginação  Esquema de gerenciamento de memória em que o espaço de endereçamento físico de um processo não é contíguo;  A paginação evita a fragmentação gerada pela alocação dinâmica;  Programas são capazes de gerar endereços virtuais;  Conjunto de endereços virtuais formam o espaço de endereçamento virtual. 36
  • 37. Paginação  Os endereços virtuais não vão diretamente para o barramento da memória;  Passam antes por uma unidade chamada MMU (Memory Management Unit – Unidade de gerenciamento de memória);  A MMU mapeia um endereço virtual para um endereço lógico;  O endereçamento virtual é dividido em unidades chamadas de páginas. 37