Você está na página 1de 53

COTIL

Sistemas Operacionais
Profa. Simone Berbert Rodrigues Daplito

Cap. 6 Gerncia de Memria

Introduo - Memria
Recurso caro e escasso; Memria secundria: mecanismos de armazenamento permanente. Mais abundantes e baratas; Programas s executam se estiverem na memria principal;

Quanto mais processos residentes na memria principal, melhor ser o compartilhamento do processador;
Necessidade de uso otimizado;
2

Introduo - Memria

O S.O. no deve ocupar muita memria; um dos fatores mais importantes em um projeto de S.O.; Gerenciamento complexo em sistemas multiprogramveis com mltiplos usurios utilizando-a eficientemente.

Memria Lgica e Memria Fsica


Memria lgica aquela que o processo enxerga; Endereos lgicos so aqueles manipulados por um processo;
Memria fsica Implementada pelos circuitos integrados de memria; Endereos fsicos so aqueles que correspondem a uma posio real de memria.

Endereo Lgico e Endereo Fsico


Espao lgico de um processo diferente do espao fsico; Endereo lgico: gerado pela CPU (endereo virtual); Endereo fsico: endereos enviados para a memria RAM; Programas de usurios enxergam apenas endereos lgicos;

Endereos lgicos so transformados em endereos fsicos no momento de execuo dos processos.


5

Unidade de Gerncia de Memria


Memory Management Unit (MMU): Hardware que faz o mapeamento entre endereo lgico e endereo fsico;
Memria CPU End. lgico MMU End. fsico

Complexidade varivel de acordo com a funcionalidade oferecida; Mecanismos de suporte para proteo, carga de programas, traduo de endereos lgicos a endereos fsicos, etc...
6

Gerenciamento de Memria
Algumas funes do Gerenciador de memria: Controlar quais as unidades de memria esto ou no esto em uso, para que sejam alocadas quando necessrio; Liberar as unidades de memria que desocupadas por um processo que finalizou; foram

Tratar do Swapping entre memria principal e memria secundria. Transferncia temporria de processos residentes na memria principal para memria secundria.
7

Gerenciamento de Memria
Tcnicas de Alocao de Memria: Alocao Contgua Simples; Alocao Particionada Esttica; Alocao Particionada Esttica Absoluta; Alocao Particionada Esttica Relocvel; Alocao Particionada Dinmica.

Alocao Contgua Simples


Implementada nos primeiros Sistemas Operacionais e ainda existente em alguns sistemas monoprogramveis; Memria dividida em duas partes, Sistema Operacional e programa do usurio;
Memria principal
Sistema Operacional

rea de Programas do usurio


9

Alocao Contgua Simples

Um usurio no pode usar uma rea maior do que a disponvel; O programador tem controle sobre toda a memria principal, podendo acessar qualquer posio da memria, inclusive onde est residente o Sistema Operacional (Sem proteo);

10

Alocao Contgua Simples


Um mecanismo de proteo utilizado delimitar a rea do Sistema Operacional. Registrador de proteo delimita as reas do sistema operacional e do usurio; Sistema verifica acessos memria em relao ao endereo do registrador;
Memria principal
Reg

Sistema Operacional

rea de Programas do usurio


11

Alocao Contgua Simples

Fcil implementao e cdigo reduzido, porm ineficincia no uso do processador e da memria pois apenas um usurio pode dispor desse recurso; Programas limitados ao tamanho da memria disponvel. Soluo = Overlay

12

Alocao Contgua Simples


Overlay (sobreposio): Dividir o programa em mdulos; Permitir execuo independente de cada mdulo, usando a mesma rea de memria;
A definio das reas de Overlay so de responsabilidade do programador atravs de comandos especficos da linguagem utilizada; rea de Overlay: rea de memria comum onde mdulos compartilham mesmo espao.
A
Memria principal
Sistema Operacional rea do Mdulo Principal rea de Overlay

C
13

Alocao Particionada

A eficincia da multiprogramao exige que vrios programas estejam na memria ao mesmo tempo, vindo a necessidade de organizao da memria.

14

Alocao Particionada

Alocao Particionada Esttica

Alocao Particionada Dinmica

15

Alocao Particionada Esttica


Sistema Operacional 225 kbytes

Diviso da memria em tamanhos fixos (parties) definidos na inicializao do Sistema em funo dos programas que executariam no ambiente.

Partio A 200 kbytes Partio A 100 kbytes Partio B 50 kbytes Partio C 25 kbytes

16

Alocao Particionada Esttica


Desvantagens: A alterao do tamanho de uma partio necessita a inicializao do Sistema Operacional;
Memria principal
Sistema Operacional

Partio A

Os programas no preenchiam totalmente as parties onde eram carregados; Memria Fragmentada Fragmentao Interna.

Partio B Partio C

17

Alocao Particionada Esttica

Posteriormente, evoluo dos compiladores, linkers e loaders com gerao de cdigo realocvel, sendo que os programas puderam ser carregados em qualquer partio (alocao particionada esttica realocvel); Surgimento da tabela de parties com informaes de tamanho, uso e delimitaes;

18

Alocao Particionada Esttica


Proteo da memria atravs de dois registradores: incio e fim da partio.

Reg

Sistema Operacional

Reg

Partio A

Partio B

Partio C
19

Alocao Particionada Esttica


Alocao Particionada Esttica Absoluta: Compiladores gerando cdigo absoluto; Endereos relativos ao incio da memria; Programas exclusivos para parties especficas. Alocao Particionada Esttica Relocvel: Compiladores gerando cdigo relocvel; Endereos relativos ao incio da partio; Programas podem rodar em qualquer partio.

20

Alocao Particionada Dinmica

Aumento do grau de compartilhamento diminuindo o problema da fragmentao;


Parties sem tamanho fixo, onde cada programa utiliza o espao que necessita; Existe ainda o problema de fragmentao, conforme os programas vo terminando e deixando espaos cada vez menores;

21

Alocao Particionada Dinmica


A execuo de processos pode criar pedaos livres de memria; Pode haver memria disponvel, mas no contgua;

Fragmentao externa;

22

Alocao Particionada Dinmica


Solues para resolver o problema de fragmentao:

1 Reunir os espaos adjacentes, produzindo um nico espao de tamanho maior.


2 Realocao de todas as parties ocupadas, eliminando todos os espaos entre elas (alocao dinmica com realocao), porm, aumentando a complexibilidade do algoritmo e consumindo mais recursos do sistema.

Desvantagem: Grande tempo de CPU consumido.


23

Alocao Particionada Dinmica


Estratgias para Escolha da Partio: Funo para determinar em qual partio livre um programa ser carregado para execuo; Funo de evitar, ou diminuir, fragmentao antes que ele ocorra; o problema da

O tamanho do programa o fator mais importante para a adoo da melhor estratgia.

24

Alocao Particionada Dinmica


Estratgias para Escolha da Partio: Best-fit: Escolhe a melhor partio, ou seja, aquela que o programa deixa o menor espao sem utilizao; Lista de reas livres alocada diminuindo o tempo de busca; por tamanho,

Desvantagem de deixar pequenas reas no contguas, aumentando o problema da fragmentao.


25

Alocao Particionada Dinmica


Estratgias para Escolha da Partio:
Worst-fit: Escolhe a pior partio, ou seja, aquela que o programa deixa o maior espao sem utilizao; Diminui o problema de fragmentao, deixando espaos livres maiores que permitem a um maior nmero de programas utilizar a memria.

26

Alocao Particionada Dinmica


Estratgias para Escolha da Partio:

First-fit: Escolhe a primeira partio livre de tamanho suficiente para carregar o programa; Lista de reas livres ordenada por endereos crescentemente;
Grande chance de se obter uma grande partio livre nos endereos de memrias mais altos; Mais rpida e consome menos recursos do sistema.
27

Exemplos

28

Swapping

Objetivo: resolver o problema da insuficincia de memria para todos os usurios; O swapping uma tcnica aplicada gerncia de memria. Aloca espao para programas que esperam por memria livre para serem processados;

29

Swapping
O sistema escolhe um programa residente, que levado da memria para o disco (swap out), retornando posteriormente para a memria principal (swap in) como se nada tivesse ocorrido.

30

Swapping

Um dos problemas do swapping a relocao dos programas;


O loader relocvel permite que um programa seja colocado em qualquer posio de memria, porm a relocao realizada no momento do carregamento; Portanto um mecanismo ineficiente em funo do tempo gasto para carregamento.

31

Swapping

No caso de um programa que saia e volte muitas vezes para a memria, necessrio que a relocao seja realizada pelo loader a cada carregamento. Essa situao torna o mecanismo ineficiente em funo do tempo gasto para o carregamento;
Outra alternativa, tambm pouco eficiente, esperar que a regio de memria usada pelo programa na ocasio do seu primeiro carregamento esteja novamente disponvel;

32

Swapping
Realocao Dinmica: a melhor soluo. Implementao no hardware dos computadores, permitindo que a realocao seja realizada durante a execuo do programa; Realizada atravs de um registrador denomidado registrador de alocao, que endereo inicial da regio da memria que o ir ocupar no momento do carregamento do na memria; especial recebe o programa programa

Toda vez que ocorrer uma referncia a algum endereo, o endereo contido na instruo ser somado ao contedo do registrador, gerando assim, o endereo fsico.
33

Swapping
Essencial para a multiprogramvel; implementao de um sistema

Permitiu um maior throughput (n executados/tempo) atravs de compartilhamento da memria;

de processos um maior

Mais eficiente para programas onde existiam poucos usurios competindo por memria e em ambientes que trabalhavam com aplicaes pequenas;

Seu maior problema o elevado custo das operaes de entrada/sada (swapped in/out).
34

Memria Virtual
Tcnica que permite a execuo de um processo sem que ele esteja completamente em memria;

Soluo para programas grandes;


O tamanho total do processo pode exceder o da memria real disponvel para armazen-lo; Desvinculao do endereamento feito pelo programa dos endereos fsicos da memria principal;

35

Memria Virtual

O SO passa a ser o responsvel por manter na memria as partes do programa efetivamente em uso, deixando o resto no disco;

Utiliza a tcnica de overlay, onde a escolha do mdulo a ser mantido na memria, antes definida pelo programador, passou a ser feita pelo prprio sistema;

36

Memria Virtual

Combina memria principal e secundria; Impresso da memria ser muito maior do que ; Procura minimizar o problema de fragmentao da memria.

37

Memria Virtual
Vantagens

Aumento do grau de multiprogramao;

Reduz o nmero de operaes de E/S para carga/swap do programa;


Capacidade de executar programas maiores que a capacidade disponvel de memria;

38

Paginao
Tcnica de gerncia de memria onde o espao de endereamento virtual e o espao de endereamento real so divididos em blocos do mesmo tamanho (pginas); Pginas virtuais no espao virtual e pginas reais ou frames (molduras) no espao real;

39

Paginao
Para executar um processo de n pginas, basta encontrar n frames livres na memria; Pginas so carregadas em qualquer frame livre; Necessidade de traduzir endereos lgicos (pginas) em endereos fsicos (frames); Mapeamento a traduo do endereo virtual para o fsico;

40

Paginao

41

Paginao

Paginao por Demanda quando as pginas dos processos so transferidas da memria secundria para a principal apenas quando so referenciadas; Paginao Antecipada o carregamento de pginas na memria antecipadamente, sendo que o sistema tenta prever as pginas que sero necessrias execuo do programa.

42

Caractersticas da Paginao
Paginao um tipo de relocao (via hardware); No gera fragmentao externa; Fragmentao interna restrita apenas a ltima pgina; n pginas so alocadas a n frames implicando na criao de uma tabela de correspondncia - Tabela de pginas;

43

Caractersticas da Paginao

Facilita implementao de proteo e compartilhamento de cdigo entre vrios processos (cdigo reentrante);
Proteo de acesso garantida por definio: Processos acessam somente suas pginas - end. Vlidos;

44

Working Set

Paginao exige operaes de E/S quando um processo faz referncia a uma pgina que no se encontra na memria; O Sistema Operacional deve se preocupar em ter um certo nmero de pginas na memria que reduza ao mximo a taxa de paginao dos processos e no prejudique os demais processos que desejam acesso a memria.

45

Working Set
Working Set de um processo o conjunto de pginas referenciadas por ele durante determinado intervalo de tempo, ou, o conjunto de pginas constantemente referenciadas pelo processo, devendo permanecer na memria principal para que execute de forma eficiente, evitando a elevada taxa de paginao (thrashing). O Working Set deve Ter um limite mximo de pginas permitidas. Thrashing: Excessiva transferncia de pginas/segmentos entre a memria principal e a memria secundria. Se existem mais processos para serem executados que a memria real disponvel, o ideal expandir a memria principal.
46

Segmentao
Tcnica de gerncia de memria, onde os programas so divididos logicamente e em sub-rotinas e estruturas de dados e colocados em blocos de informaes na memria; Segmentos blocos de tamanhos diferentes com seu prprio espao de endereamento.; Segmentao X Paginao Paginao com partes de tamanho fixo e segmentos com blocos de tamanhos variados e permite uma relao entre a lgica do programa e sua diviso na memria;
47

Segmentao
Cada entrada na tabela de segmentos possui o endereo do segmento na memria fsica, informaes sobre o tamanho do segmento, sua proteo e se ele est na memria ou no; O Sistema Operacional mantm uma tabela com as reas livres e ocupadas da memria; A escolha da rea livre a ser ocupada por um processo a ser carregado na memria pode ser a mesma utilizada no item Alocao Particionada Dinmica (best-fit, worst-fit ou first-fit);
48

Segmentao

49

Segmentao

Apenas os segmentos referenciados so transferidos para a memria real;


Os programas devem ser bem modularizados para uma maior eficincia; Existe tambm o problema da fragmentao e o problema da complexibilidade.

50

Segmentao
Desvantagens

A segmentao provoca fragmentao externa quando segmentos comeam a ser liberar memria; Mesmo problema da alocao particionada dinmica, com as mesmas solues; (slides 21 a 24)

51

Dvidas

?
52

Bibliografia
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. Machado, Francis B. E Maia, Luiz Paulo; Arquitetura de Sistemas Operacionais.

Silberschatz, Abraham e Galvin, Peter e Gagne, Greg; Sistemas Operacionais.


Tanenbaum, Andrew S.; Sistemas Operacionais Modernos. http://www.gsigma.ufsc.br/~popov/aulas/so1/cap9so.html - acessado em 31/08/2011

Você também pode gostar