27
Sistemas Operacionais GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09 Prof. Pedro Luís Antonelli Anhanguera Educacional

Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2014/05/Aula11-Gerencia-da... · memória principal para a memória secundária (Swap out), geralmente

  • Upload
    doannhi

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Sistemas Operacionais

GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09

Prof. Pedro Luís Antonelli Anhanguera Educacional

Gerenciamento da Memória

Programas precisam ser trazidos para a memória para serem executados. É neste momento que programas transformam-se em processos. Como sabemos, os computadores utilizam uma hierarquia de memória em sua organização, combinando memórias voláteis e não-voláteis, tais como: memória cache, memória principal e memória secundária.

Gerenciamento da Memória

Ao sistema operacional é destinada a função de coordenar e gerenciar a utilização dessas memórias de forma eficiente. Este serviço é implementado pelo sistema operacional através do gerenciador de memória.

Memórias - Hierarquia

Hierarquia da memória

Gerenciamento da Memória

As funções básicas de um Gerenciador de Memória são: -Transferir programas da memória; secundária para a memória principal; -Reduzir o número de operações de E/S nesta transferência (pois a memória secundária é lenta); -Manter na memória o maior número possível de processos residentes, maximizando a utilização de recursos;

Gerenciamento da Memória

-Permitir que novos programas sejam aceitos mesmo que não exista espaço livre de memória; -Permitir a execução de programas maiores do que a memória física; -Proteger as áreas de memória ocupadas por cada processo; -Oferecer mecanismos de compartilhamento de dados e informações.

Gerenciamento da Memória

Técnicas de Alocação de Memória: - Alocação Contígua Simples; - Alocação Particionada Estática;

- Alocação Particionada Estática Absoluta; - Alocação Particionada Estática Relocável;

- Alocação Particionada Dinâmica.

- Alocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis;

- A Memória é dividida em duas áreas: – Área do Sistema Operacional; – Área do Usuário.

- Um usuário não pode usar uma área maior do que a disponível; - Sem proteção, pois um usuário pode acessar a área do Sistema Operacional.

Memória principal

Sistema

Operacional

Área de

Programas

do usuário

Alocação Contígua Simples

Alocação Contígua Simples - Proteção

- Registrador de proteção delimita as áreas do sistema operacional e do usuário;

- Sistema verifica acessos à memória

em relação ao endereço do registrador;

- A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória;

Memória principal

Sistema

Operacional

Área de

Programas

do usuário

Reg

Alocação Contígua Simples - Overlay

- Programas de usuário limitados pelo tamanho da memória principal disponível.

- Solução: Overlay – Dividir o programa em módulos;

– Permitir execução independente de cada módulo, usando a mesma área de memória;

- Área de Overlay – Área de memória comum onde módulos

compartilham mesmo espaço.

Memória principal

Sistema

Operacional

Área de

Overlay

Área do

Módulo

Principal

A B C

Alocação Particionada

- Multiprogramação : Com a multiprogramação começou a existir a necessidade do uso da memória por vários usuários simultaneamente.

- Ocupação mais eficiente do processador;

- A memória foi dividida em pedaços de tamanho fixo chamados partições;

- O tamanho de cada partição era estabelecido na inicialização do sistema;

- Para alteração do particionamento, era necessário uma nova inicialização com uma nova configuração.

Alocação Particionada

Alocação Particionada Estática

Alocação Particionada Estática Absoluta:

– Compiladores gerando código absoluto, ou seja os

endereços são relativos ao início da memória;

– Programas exclusivos para partições específicas.

Alocação Particionada Estática Relocável:

– Compiladores gerando código relocável, ou seja Endereços

relativos ao início da partição;

– Programas podem rodar em qualquer partição.

Alocação Particionada Estática

- Proteção:

– Registradores com limites inferior e superior de memória acessível.

- Programas não ocupam totalmente o espaço das partições, gerando uma fragmentação interna.

Memória principal

Sistema

Operacional

Partição C

Partição A

Reg

Reg

Partição B

Alocação Particionada Dinâmicamente

- Não existe o conceito de partição fixa, e sim que o espaço utilizado por um programa é a sua partição.

-Não ocorre fragmentação interna.

- Ao terminarem, os programas deixam espalhados espaços pequenos de memória, provocando a fragmentação externa.

Memória principal

Sistema

Operacional

Processo E

Processo A

Processo C

Processo F

Alocação Particionada Dinâmicamente

- Soluções: – Reunião dos espaços contíguos.

– Relocação Dinâmica:

- Movimentação dos programas pela

memória principal;

- Resolve o problema da fragmentação;

- Consome recursos do sistema tais como tempo de processamento, uso de discos, etc.

Memória principal

Sistema

Operacional

Processo E

Processo A

Processo F

Alocação Particionada Dinâmicamente

Uma das grandes vantagens desta estratégia é que a flexibilidade obtida melhora bastante a utilização da memória, evitando desperdícios de espaço.

Por outro lado, a gerência dos espaços vazios é mais complicada, bem como a alocação e liberação das partições.

O sistema operacional mantém uma lista de espaços livres na memória física.

.

Estratégias de Alocação de Memória

Sempre que um novo processo é criado esta lista é percorrida e será usada uma lacuna maior ou igual ao tamanho do processo em questão.

Existem algumas técnicas para percorrer esta lista:

– Best-Fit (melhor alocação);

– Worst-Fit (pior alocação);

– First-Fit (primeira alocação);

Estratégias de alocação de partição

- Best-fit (melhor alocação): A melhor partição é escolhida, ou seja a que o

Programa deixa o menor espaço sem utilização.

- Espaço mais próximo do tamanho do processo;

- Tempo de busca grande;

- Provoca fragmentação.

Estratégias de alocação de partição

- Worst-fit (pior alocação): A pior partição é escolhida, ou seja, a que o

programa deixa o maior espaço sem utilização.

- Cria o maior espaço possível;

- Tempo de busca grande;

- Não apresenta bons resultados.

Estratégias de alocação de partição

- First-fit (primeira alocação): Escolhe a primeira partição livre de tamanho

suficiente para carregar o programa.

- É a estratégia mais rápida, portanto com a melhor performance

Técnica de Swapping

- Introduzida para contornar o problema de insuficiência de memória principal.

- Permite o compartilhamento da memória principal e maior utilização dos recursos do SO.

- Técnica aplicada a gerência de memória para programas que esperam por memória livre para serem executados.

Técnica de Swapping

• O sistema escolhe um processo residente, que é transferido da memória principal para a memória secundária (Swap out), geralmente um disco.

• Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (Swap In) e pode continuar sua execução como se nada tivesse ocorrido

Técnica de Swapping

programa B

programa A

programa E

programa A

programa G

Sistema

Operacional

Memória principal

programa H

programa E

programa A

B B

Swap In

Swap Out

Sistema

Operacional

programa B

Técnica de Swapping

• Problema gerado pelo Swapping:

– Relocação de processos:

- O tempo gasto com relocação é alto;

- Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU.

BIBLIOGRAFIA

• MACHADO, F. B. & MAIA, L. P., Arquitetura de Sistemas Operacionais, 4 Edição, São Paulo, LTC, 2007.

• TANENBAUM, A. S. Sistemas Operacionais Modernos: 2ª edição, São Paulo, editora Prentice Hall, 2003.

• SILBERSCHATZ, A. Sistemas Operacionais – Conceitos: São Paulo, editora LTC, 2004.