Sie sind auf Seite 1von 107

Gerenciamento de Memria

Fernando Morse morse@oi.com.br

Gerenciamento de Memria
Introduo

Enquanto em um sistema monoprogramvel, o gerenciamento de memria no to complicado, num sistema multiprogramado, esta tarefa se torna crtica. preciso gerenciar diversas aplicaes compartilhando a mesma memria fsica. O sistema operacional carrega os programas localizados no disco para a memria antes de execut-los. Como o acesso a disco (operao de IO) muito mais demorada que um acesso memria, o S.O. deve procurar manter o maior nmero de dados e programas na memria principal.

Gerenciamento de Memria
Funes Bsicas

Manter o maior nmero de processos na memria Swapping quando a memria acabar Execuo de programas maiores que memria disponvel

Proteo contra acessos indevidos


Compartilhamento entre processos e threads.

Gerenciamento de Memria

Alocao de Memria

Gerenciamento de Memria
Alocao de Memria Quando se fala em alocao de memria, estamos falando, na verdade, de como interfacear seu programa com o sistema operacional, pois efetivamente quem lhe dar memria o sistema operacional.

Gerenciamento de Memria
Tcnicas

Alocao Contgua Simples Alocao Contgua Overlay Alocao Particionada Swapping Memria Virtual Paginao Segmentao

Gerenciamento de Memria

Alocao Contgua Simples

Gerenciamento de Memria
Alocao Contgua Simples

A alocao contgua simples foi implementada nos primeiros sistemas operacionais desenvolvidos. A memria principal dividida em duas partes: uma para o Sistema Operacional e outra para o Programa do Usurio.

Gerenciamento de Memria
Alocao Contgua Simples

O programador deve desenvolver suas aplicaes preocupado-se , apenas, em no ultrapassar o espao de memria disponvel. O usurio tem controle sobre toda a memria principal, podendo acessar qualquer posio de memria, inclusive para alterar o Sistema Operacional. Alguns sistemas implementam proteo atravs de um registrador, que delimita as reas do Sistema Operacional e do usurio.

Gerenciamento de Memria
Alocao Contgua Simples

Dessa forma, sempre que um programa de usurio faz referncia a um endereo na memria, o sistema verifica se o endereo est nos seus limites. Apesar de sua fcil implementao e cdigo reduzido, a alocao contgua simples no permite a utilizao eficiente do processador.

10

Gerenciamento de Memria
Alocao Contgua Simples

Proteo h um registrador para no deixar o programa acessar uma rea do S.O.

11

Gerenciamento de Memria
Alocao Contgua Simples

Apenas um usurio pode dispor desses recursos. Caso o programa do usurio no preencha totalmente, existir um espao de memria sem utilizao. A princpio, os programas dos usurios estavam limitados ao tamanho da memria principal disponvel.

12

Gerenciamento de Memria
Alocao Contgua Simples Problema: Subutilizao da memria, pois apenas um usurio tem acesso ao sistema por vez.

Lembre-se: Apenas 1 programa poder ser executado por vez. rea de Memria desperdiada

13

Gerenciamento de Memria

Alocao Contgua Overlay

14

Gerenciamento de Memria
Alocao Contgua Overlay

Quando um mdulo estiver na memria, o outro no precisa necessariamente estar. O mdulo principal comum aos dois mdulos; logo, deve permanecer na memria durante todo o tempo. A definio das reas de overlay funo do programador, atravs de comandos especficos da linguagem utilizada. O tamanho de uma rea ser estabelecido a partir do tamanho do maior mdulo.

15

Gerenciamento de Memria
Alocao Contgua Overlay

A tcnica de overlay tem a vantagem de permitir ao programador expandir os limites da memria principal. A utilizao dessa tcnica exige muito cuidado, pois pode trazer implicaes tanto no desempenho das aplicaes, devido possibilidade de transfer6encia excessiva dos mdulos entre disco e a memria, quanto na sua manuteno.

16

Gerenciamento de Memria
Alocao Contgua Overlay

O tamanho da rea de overlay ser estabelecido pela mdulo de maior tamanho.

17

Gerenciamento de Memria

Alocao Particionada

18

Gerenciamento de Memria
Alocao Particionada

Nos sistemas multiprogramveis, o processador permanece ocioso e a memria substituda, enquanto o programa aguarda por algum evento. Para a multiprogramao ser eficiente, necessrio que vrios programas estejam na memria ao mesmo tempo, da a necessidade de uma nova forma de organizao para a memria principal.

19

Gerenciamento de Memria
Alocao Particionada

J uma maneira mais sofisticada de gerenciar a memria A alocao particionada pode ser: Esttica ou Fixa O tamanho das parties fixo e definido a priori (Absoluta e Relocvel). Dinmica O tamanho das parties podem ser alterados dinamicamente.

20

Gerenciamento de Memria

Alocao Particionada Esttica Absoluta

21

Gerenciamento de Memria
Alocao Particionada Esttica Absoluta

Nos primeiros sistemas multiprogramveis, a memria foi dividida em pedaos de tamanho fixo, chamados parties. O tamanho das parties era estabelecido na fase de iniciao do sistema, em funo do tamanho dos programas que executariam no ambiente. Sempre que fosse necessria a alterao do tamanho de uma partio, o sistema deveria ser desativado e reiniciado com uma nova configurao. A princpio, os programas s podiam executar em uma das parties, mesmo se outras estivessem disponveis.

22

Gerenciamento de Memria
Alocao Particionada Esttica Absoluta

Essa limitao se devia aos compiladores e montadores, que geravam apenas cdigo absoluto. A esse tipo de alocao chamou-se alocao particionada esttica absoluta.

23

Gerenciamento de Memria
Alocao Particionada Esttica Absoluta

24

Gerenciamento de Memria

Alocao Particionada Esttica Relocvel

25

Gerenciamento de Memria
Alocao Particionada Esttica Relocvel

26

Com a evoluo dos compiladores, linkers e loaders, a gerao de cdigo relocvel foi possvel, e os programas puderam ser carregados em qualquer partio. Foi criado um novo tipo de organizao, denominado alocao particionada esttica relocvel. Para manter o controle de quais parties estavam alocadas ou no, os sistemas possuam uma tabela, delimitando cada partio, seu tamanho e se estava em uso ou no. Sempre que um programa era carregado para a memria, o sistema percorria a tabela, na tentativa de localizar uma partio livre, onde o programa pudesse ser alocado.

Gerenciamento de Memria
Alocao Particionada Esttica Relocvel

Tanto nos sistemas de alocao absoluta quanto nos de alocao relocvel, os programas, normalmente, no preenchiam totalmente as parties onde eram carregados. Se um programa for maior que qualquer partio livre, ele ficar aguardando uma que o acomode, mesmo que existam duas ou mais parties adjacentes que, somadas, totalizem o tamanho do programa.

27

Gerenciamento de Memria
Alocao Particionada Esttica Relocvel

28

Gerenciamento de Memria
Alocao Particionada Esttica - Fragmentao

Grande perda de memria no utilizada em suas diversas parties

29

Gerenciamento de Memria

Alocao Particionada Dinmica

30

Gerenciamento de Memria
Alocao Particionada Dinmica

A alocao particionada esttica, analisada no item anterior, deixou evidente a necessidade de uma nova forma de organizao para a memria principal, que diminusse o problema da fragmentao e, conseqentemente, aumentasse o grau de compartilhamento da memria. Na alocao particionada dinmica (ou varivel), foi eliminado o conceito de parties de tamanho fixo. Cada programa utilizaria o espao de que necessitasse, passando esse pedao a ser sua partio.

31

Gerenciamento de Memria
Alocao Particionada Dinmica

A fragmentao externa comear a ocorrer, realmente, quando os programas forem terminando e deixando espaos cada vez menores na memria, no permitindo o ingresso de novos programas. (Prxima Figura)

32

Gerenciamento de Memria
Fragmentao

33

Gerenciamento de Memria
Alocao Particionada Dinmica - Fragmentao Existem duas solues para fragmentao: Os espaos adjacentes so reunidos, produzindo um espao de tamanho maior.

Ateno, aconteceu o trmino de execuo do programa C

34

Gerenciamento de Memria
Alocao Particionada Dinmica - Fragmentao A segunda maneira de resolver o problema da fragmentao envolve a relocao de todas as parties, eliminando os espaos entre elas e criando uma nica rea livre contgua.

35

Gerenciamento de Memria
Estratgias para Escolha da Partio

Os sistemas Operacionais implementam, basicamente, trs estratgias para determinar em qual partio livre um programa ser carregado para execuo. BEST-FIT, WORST-FIT e FIRST-FIT Essas estratgias tentam evitar, ou diminuir, o problema da fragmentao antes que ela ocorra. O sistema possu uma lista de reas livres (free list), com o endereo e tamanho de cada uma delas.

36

Gerenciamento de Memria
Lista de reas livres Lista de reas livres controla as parties e sua disponibilidade.

37

Gerenciamento de Memria
Best-fit

Escolhe a melhor partio (best-fit), ou seja, aquela em que o programa deixa o menor espao sem utilizao. A lista de reas livres est ordenada por tamanho, diminuindo o tempo de busca por uma rea desocupada. Como alocada a partio que deixa a menor rea livre, a tendncia que cada vez mais a memria fique com pequenas reas no contguas, aumentando o problema da fragmentao.

38

Gerenciamento de Memria
Best-fit

39

Gerenciamento de Memria
Worst-fit

Escolhe a pior partio (worst-fit), ou seja, aquela em que o programa deixa o maior espao sem utilizao. Deixa espaos livres maiores, para serem ocupados por outros programas, diminuindo o problema de fragmentao

40

Gerenciamento de Memria
Worst-fit

41

Gerenciamento de Memria
First-fit

Escolhe a primeira partio (first-fit) livre, de tamanho suficiente para carregar o programa. A lista de reas livres est ordenada por endereos crescentemente. Como o mtodo tenta primeiro utilizar as reas livres de endereos mais baixos, existe uma grande chance de se obter uma grande partio livre nos endereos de memria mais altos. Das trs, a first-fit a mais rpida, consumindo menos recursos do sistema.

42

Gerenciamento de Memria
First-fit

43

Gerenciamento de Memria

Swapping

44

Gerenciamento de Memria
Swapping

Mesmo com o aumento da eficincia da multiprogramao e, particularmente, da gerncia de memria, muitas vezes um programa no podia ser executado por falta de uma partio livre disponvel. A tcnica swapping veio tentar resolver o problema da insuficincia de memria para todos os usurios. Em todos os esquemas apresentados anteriormente, um programa permanecia na memria principal at o final da sua execuo. 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.

45

Gerenciamento de Memria
Swapping
SWAP OUT SWAP IN

46

Gerenciamento de Memria
Swapping

47

Um dos problemas gerados pelo 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. No caso de um programa que saia e volte muitas vezes para a memria, necessrio que a relocao seja realizada pelo loader de cada carregamento. Torna o mecanismo ineficiente em funo do tempo gasto para o carregamento. A melhor soluo para este problema uma implementao do hardware dos computadores (MMU), para permitir que a relocao seja realizada durante a execuo do programa. Esse tipo de mecanismo denominado relocao dinmica .

Gerenciamento de Memria
Swapping

A relocao dinmica essencial para a implementao de um sistema multiprogramvel. O conceito swapping permitiu um maior compartilhamento da memria e, conseqentemente, um maior throughput.

48

Gerenciamento de Memria

Localidade de Referncia

49

Gerenciamento de Memria
Localidade de Referncia A importncia de se melhorar a localidade de dados est relacionado ao uso eficiente da hierarquia de memria. O princpio da localidade de referncia diz que o dado usado mais recentemente tem grande probabilidade de ser acessado novamente num futuro prximo (localidade temporal).

Favorecendo-se o acesso a tais dados, aumenta-se o desempenho do sistema. Ento, na medida do possvel, os elementos recentemente acessados devem ser mantidos em memrias mais rpidas.

50

Gerenciamento de Memria
Localidade de Referncia Devido ao fato de que memrias mais rpidas so menores, seu uso como memria de armazenamento dos dados de recente acesso, num nvel prximo ao processador, e a utilizao de memrias maiores (e mais lentas) em nveis mais distantes do processador, permite que se alcance um melhor compromisso entre custo e desempenho. Este tipo de organizao denominada de hierarquia de memria.

51

Gerenciamento de Memria
Localidade de Referncia Formas de Localidade
Localidade temporal:

Itens referenciados no passado recente tm maior chance de serem novamente referenciados em um futuro prximo

52

Gerenciamento de Memria
Localidade de Referncia Formas de Localidade
Localidade espacial:

Tendncia em processos de acessar itens cujos endereos esto prximos. elementos em posies consecutivas da memria tm chance de serem acessados em sequncia

53

Gerenciamento de Memria

Relocao Dinmica

54

Gerenciamento de Memria
MMU (Memory Management Unit)
Dispositivo de hardware que transforma endereos virtuais em endereos fsicos. Na MMU, o valor no registo de relocao adicionado a todo o endereo lgico gerado por um processo do utilizador na altura de ser enviado para a memria. O programa do utilizador manipula endereos lgicos; ele nunca v endereos fsicos reais.

55

Gerenciamento de Memria
MMU Quando uma posio de memria lida ou escrita, o hardware traduz o endereo gerado pelo programa ((o endereo de memria virtual ou lgico) em um endereo de memria real, normalmente diferente, (o endereo fsico de memria). A traduo implementada pela MMU, que pode ser um mdulo da CPU ou um circuito auxiliar em um chip interligado CPU. Endereo Lgico gerado pela UCP. Endereo Fsico endereo visto pela unidade de memria.

56

Gerenciamento de Memria
A MMU o dispositivo de hardware responsvel por mapear o endereo virtual para endereo fsico. Neste esquema o valor no registrador de relocao (prxima figura) somado em cada endereo gerado pelo processo do usurio no momento em que ele enviado para a memria ou, para o caso de leitura fazemos o processo inverso.

Lembre-se os programas sempre se referem a endereos lgicos (virtual) ele no v os endereos fsicos.

57

Gerenciamento de Memria
Relocao Dinmica

58

Gerenciamento de Memria
Relocao O problema de determinados programas s rodarem em uma partio passou a ser crtico, pois trazia uma grande ineficincia ao sistema. A tcnica de relocao consiste na utilizao de um registrador (registro de relocao) como endereo base a partir do qual todos os endereos so referenciados. O valor desse registrador somado a todo endereo base gerado pelo processo do usurio em execuo.

59

Gerenciamento de Memria
Relocao

60

Gerenciamento de Memria

Memria Virtual

61

Gerenciamento de Memria
Memria Virtual
A memria virtual uma forma de permitir ao software utilizar mais memria que o computador possui fisicamente. Ela consiste de um conjunto de alteraes no projeto do hardware combinadas a alteraes no projeto do sistema operacional. Tecnicamente falando, ela permite ao programa executar em um espao de memria cujo tamanho no necessariamente limitado ao tamanho da memria fsica do computador, com a combinao das memrias principal e secundria.

62

Gerenciamento de Memria
Memria Virtual

O conceito de memria virtual est baseado em desvincular o endereamento feito pelo programa dos endereos fsicos da memria principal. Os programas e suas estruturas de dados deixam de estar limitados ao tamanho da memria fsica disponvel.

63

Gerenciamento de Memria

64

Gerenciamento de Memria
Espao de Endereamento Virtual

Um programa no ambiente de memria virtual no faz referncia a endereos fsicos de memria (endereos reais) , mas apenas a endereos virtuais. No momento da execuo de uma instruo, o endereo virtual traduzido para um endereo fsico, pois o processador acessa apenas posies da memria principal. O mecanismo de traduo do endereo virtual para endereo fsico denominado mapeamento.

65

Gerenciamento de Memria
Espao de Endereamento Virtual

O conjunto de endereos virtuais que os processos podem enderear chamado espao de endereamento virtual. Analogamente, o conjunto de endereos reais chamado espao de endereamento real. O espao de endereamento virtual no tem nenhuma relao direta com os endereos no espao real. Um programa pode fazer referncia a endereos virtuais que estejam fora dos limites do espao real, ou seja, os programas e suas estruturas de dados no esto mais limitados ao tamanho da memria fsica disponvel.

66

Gerenciamento de Memria
Espao de Endereamento Virtual

Os programas podem ser muito maiores que a memria fsica, apenas parte deles pode estar residente na memria em um determinado instante. O sistema operacional utiliza a memria secundria como extenso da memria principal. Quando o usurio desenvolve suas aplicaes, ele ignora a existncia dos endereos virtuais. Os compiladores linkers se encarregam de gerar o cdigo executvel em funo desses endereos, e o sistema operacional cuida dos detalhes de sua execuo.

67

Gerenciamento de Memria

68

Gerenciamento de Memria
Mapeamento

Deve existir um mecanismo que transforme os endereos virtuais em endereos reais. Mapeamento permite ao sistema operacional traduzir um endereo localizado no espao virtual para um no espao real. Como conseqncia do mapeamento, um programa no precisa estar necessariamente contguo na memria real para ser executado Nos sistemas atuais, a tarefa de traduo realizada por hardware, juntamente com o sistema operacional, de forma a no comprometer seu desempenho e torn-lo transparente a usurios e suas aplicaes.

69

Gerenciamento de Memria
Mapeamento

Como a maioria das aplicaes tende a fazer referncia a um reduzido nmero de pginas, somente uma pequena frao da tabela de pginas realmente necessria. Com base nesta realidade, foi introduzido um hardware especial para mapear endereos virtuais para endereos fsicos sem a necessidade de acesso tabela de pginas, chamando memria associativa ou translation lookside buffer (Cache da MMU). Cada processo tem o mesmo espao de endereamento virtual, como se possusse sua prpria memria virtual. O mecanismo de traduo se encarrega, ento, de manter tabelas de mapeamento exclusivas para cada processo, relacionando os endereos virtuais do processo s suas posies na memria fsica.

70

Gerenciamento de Memria

71

Gerenciamento de Memria
Paginao

Paginao a tcnica de gerncia de memria onde o espao de endereamento virtual e o espao de endereamento real so divididos em blocos do mesmo tamanho, chamados pginas. As pginas no espao virtual so denominadas pginas virtuais, as pginas no espao real so chamadas de pginas reais ou frames (molduras). Todo o mapeamento realizado em nvel de pgina, atravs de tabelas de pginas. Cada processo possui sua prpria tabela

72

Gerenciamento de Memria

73

Gerenciamento de Memria
Paginao

Cada pgina virtual do processo possui uma entrada na tabela (entrada na tabela de pginas - ETP), com informaes de mapeamento que permitem ao sistema localizar a pgina real correspondente. Quando um programa executado, as pginas virtuais so transferidas da memria secundria para a memria principal e colocadas em frames. Sempre que o programa fizer referncia a um endereo virtual, o mecanismo de mapeamento localizar, na ETP da tabela do processo, o endereo fsico do frame.

74

Gerenciamento de Memria
Paginao

75

Gerenciamento de Memria
Paginao

O endereo virtual formado pelo nmero da pgina virtual (NPV) e um deslocamento dentro da pgina. O NPV identifica, unicamente, uma pgina virtual na tabela de pginas (ETP) O deslocamento funciona como seu ndice. O endereo fsico calculado, ento, somando-se o endereo do frame localizado na tabela de pginas com o deslocamento contido no endereo virtual.

76

Gerenciamento de Memria
Paginao

End.Fsico = End.ETP + Deslocamento

77

Gerenciamento de Memria
Page Fault

A ETP possui outras informaes, entre elas o bit de validade, que indica se uma pgina est ou no na memria fsica (valid bit). Se o bit tem o valor 0, indica que a pgina virtual no est na memria principal, enquanto, se for igual a 1, a pgina est localizada na memria. Sempre que o processo faz referncia a um endereo virtual, o sistema verifica, atravs do bit de validade, se a pgina que contm o endereo referenciado est ou no na memria principal. Caso no esteja, o sistema tem de transferir a pgina da memria secundria para a memria fsica.Toda vez que o sistema solicitado para isso, dizemos que ocorreu um page fault (falha de pgina).

78

Gerenciamento de Memria
Page Fault

79

Gerenciamento de Memria
Fragmentao x Paginao

Quando menor o tamanho da pgina menor ser a fragmentao interna da memria. Quando menor o tamanho da pgina, maior ser a tabela de pginas, bem como maior ser o acesso ao disco causando uma perda de desempenho bem razovel

80

Gerenciamento de Memria
Poltica de Busca de Pginas Determina quando uma pgina deve ser carregada para a memria

Paginao por Demanda: somente a pgina solicitada transferida para a memria Paginao Antecipada: pginas adjacentes ou provveis de serem referenciadas so trazidas junto com a pgina referenciada.

81

Gerenciamento de Memria
Working Set

82

O mecanismo de memria virtual apesar de suas vantagens, introduz um grande problema. Sempre que um processo faz referncia a uma de suas pginas e esta no se encontra na memria (page fault), exige do sistema operacional pelo menos uma operao de E/S, que, quando possvel, deve ser evitada. A taxa de page faults gerada por um programa depende de como a aplicao foi desenvolvida, alm da poltica de gerncia de memria implementada pelo sistema operacional. Qualquer sistema que implementa paginao deve se preocupar em manter na memria principal um certo nmero de pginas que reduza ao mximo a taxa de paginao dos processos, ao mesmo tempo que no prejudique os demais processos que desejam ter acesso memria.

Gerenciamento de Memria
Working Set O working set o conjunto de pginas constantemente referenciadas pelo processo, devendo permanecer na memria principal para que execute de forma eficiente.

83

Gerenciamento de Memria
Realocao de Pginas

O maior problema na gerncia de memria virtual por paginao no decidir que pgina carregar para a memria, mais quais pginas remover. Quando o limite do working set de um processo alcanado, e este necessita de novos frames, o sistema operacional deve intervir e escolher, entre as diversas pginas do seu working set, quais as pginas que devem ser liberadas. Qualquer estratgia de realocao de pginas deve considerar se uma pgina foi ou no modificada, antes de liber-la para outro processo.

84

Gerenciamento de Memria
Realocao de Pginas

Sempre que o sistema liberar uma pgina desse tipo, ele antes dever grav-la na memria secundria (page out), preservando seu contedo. O sistema mantm um arquivo de paginao (page file) onde as pginas modificadas so armazenadas. Sempre que uma destas pginas for novamente referenciada, ela ser trazida novamente para o working set do processo (page in).

85

Gerenciamento de Memria

Realocao de Pginas

86

Gerenciamento de Memria
Principais Algoritmos para a Realocao de Pginas:

Aleatria FIFO (First in First Out) LRU (Last Recently Used) NRU (Not Recently Used) LFU (Least Frequently Used)

87

Gerenciamento de Memria
Aleatria

No utiliza critrio algum de seleo. Todas as pginas do working set tm a mesma chance de ser selecionadas, inclusive as pginas que so freqentemente referenciadas. Apesar de ser uma estratgia que consome poucos recursos do sistema, raramente utilizada.

88

Gerenciamento de Memria
First-In-First-Out (FIFO)

A pgina que primeiro foi utilizada (first-in) ser a primeira a ser escolhida (first-out). Sua implementao bastante simples, sendo necessria apenas uma fila , onde as pginas mais antigas esto no incio da fila e as mais recentes no final. Caso uma pgina seja constantemente referenciada, como o caso de pginas de utilitrios do sistema, o fator tempo se torna irrelevante, e o sistema tem de fazer retornar a mesma pgina vrias vezes.

89

Gerenciamento de Memria
Last-Recently-Used (LRU)

Seleciona a pgina utilizada menos recentemente (leastrecently-used). Substitui a pgina na memria cuja ltima referncia a mais antiga, ou seja, as pginas referenciadas a mais tempo sero referenciadas em futuro prximo. Apesar de ser uma boa estratgia, pouco implementada devido ao grande overhead causado pela atualizao, em cada pgina referenciada, do momento do ltimo acesso, alm do algoritmo de busca dessas pginas.

90

Gerenciamento de Memria
Not-Recently-Used (NRU)

A escolha da pgina que no foi recentemente utilizada (not-recentlyused) bastante semelhante ao esquema LRU. Existe um flag, que permite ao sistema a implementao do algoritmo. O flag de referncia indica quando a pgina foi referenciada ou no, e est associado a cada entrada na tabela de pginas. Inicialmente, todas as pginas esto com o flag indicando que no foram referenciadas (0). medida que as pginas so referenciadas, o flag associado a cada pgina modificado pelo hardware (1). Depois de um certo tempo, possvel saber quais pginas foram referenciadas ou no.

91

Gerenciamento de Memria
Least-Frequently-Used (LFU)

A pgina menos referenciada, ou seja, a menos freqentemente utilizada (least-frequently-used) ser a pgina escolhida. mantido um contador do nmero de referncia feitas s pginas. A pgina que tiver o contador com o menor nmero de referncias ser a pgina escolhida. O algoritmo privilegia, ou seja, mantm na memria, as pginas que so bastante utilizadas. Porm, as pginas que entrarem mais recentemente no working set sero, justamente, aquelas que estaro com os contadores com menos valor.

92

Gerenciamento de Memria

Segmentao

93

Gerenciamento de Memria
Tamanho de Pgina

94

O problema da fragmentao tambm existe em sistemas com paginao, s que em menor escala, se comparada com a de outras organizaes j apresentadas. O programa ocupa quase que integralmente todas as pginas. A fragmentao s encontrada, realmente, na ltima pgina, quando o cdigo no a ocupa por completo. O tamanho da pgina est associado ao hardware e varia de sistema para sistema. A maioria dos estudos em relao ao tamanho ideal de pgina indica pginas de tamanho pequeno.

Gerenciamento de Memria
Segmentao

Segmentao a tcnica de gerncia de memria, onde os programas so divididos logicamente em sub-rotinas e estruturas de dados e colocados em blocos de informaes na memria. Os blocos tm tamanhos diferentes s so chamados segmentos, cada um com seu prprio espao de endereamento. A grande diferena entre a paginao e a segmentao que, enquanto a primeira divide o programa em partes de tamanho fixo, sem qualquer ligao com a estrutura do programa, a segmentao permite uma relao entre a lgica do programa e sua diviso na memria.

95

Gerenciamento de Memria
Segmentao

96

Gerenciamento de Memria
Segmentao

O mecanismo de mapeamento muito semelhante ao de paginao. Os segmentos so mapeados atravs de tabelas de mapeamento de segmento (TMS), e os endereos so compostos pelo nmero do segmento e um deslocamento dentro do segmento. O nmero de segmento identifica unicamente uma entrada na tabela de segmentos (ETS), onde esto as informaes sobre o segmento na memria real. O endereo absoluto calculado a partir do endereo inicial do segmento mais o deslocamento dentro do segmento. Alm do endereo do segmento na memria fsica, cada entrada na tabela de segmentos possui informaes sobre o tamanho do segmento, se ele est ou no na memria e sua proteo.

97

Gerenciamento de Memria
Segmentao

O sistema operacional mantm uma tabela com reas livres e ocupadas da memria. Quando um novo processo carregado para a memria, o sistema localiza um espao livre que o acomode. As estratgias para escolha da rea livre podem ser as mesmas utilizadas no item Alocao Particionada Dinmica, ou seja, best-fit, worst-fit ou first-fit. Na segmentao, apenas os segmentos referenciados so transferidos da memria secundria para a memria real. Logo, para serem mais eficientes, os programas devem estar bem modularizados.

98

Gerenciamento de Memria
Segmentao

Se as aplicaes no estiverem divididas em mdulos, grandes pedaos de cdigo estaro na memria desnecessariamente, no permitindo que outros usurios, tambm, utilizem a memria. O problema da fragmentao tambm ocorre nesse modelo, quando as reas livres so to pequenas, que no acomodam nenhum segmento que necessite ser carregado. Um outro problema sua complexidade, pois o sistema deve manter tabelas de segmentos que variam de acordo com o nmero de segmentos.

99

Gerenciamento de Memria
Proteo

10 0

Em qualquer sistema multiprogramvel, deve existir um mecanismo que proteja o espao de memria de cada processo e, principalmente, a rea do sistema operacional. No esquema de memria virtual, cada processo tem sua tabela de mapeamento, e a traduo dos endereos realizada pelo sistema. Assim, impossvel que um processo tenha acesso a reas de memria de outros processos, a menos que haja compartilhamento explcito de pginas/segmentos. A proteo necessria para impedir que um processo, ao acessar uma pgina/segmento do sistema, a modifique ou mesmo tenha acesso a ela.

Gerenciamento de Memria

Swapping em Memria Virtual

10 1

Gerenciamento de Memria
Swapping em Memria Virtual

10 2

O conceito de swapping continua vlido quando aplicado memria virtual. Quando existem novos processos que desejam ser processados e no existe memria real suficiente, o sistema seleciona um ou mais processos que devero sair da memria para ceder espao aos novos processos. H vrios critrios que podem ser aplicados na escolha do(s) processo(s) que deve(m) sair da memria. Os mais utilizados so a prioridade e o estado do processo. O critrio de estado seleciona os processos que esto no estado de espera, ou seja, aguardando por algum evento. O critrio de prioridade escolhe, entre os processos, os d menor prioridade de execuo.

Gerenciamento de Memria

Thrashing

10 3

Gerenciamento de Memria
Thrashing

Thrashing pode ser definido como sendo a excessiva transferncia de pginas/segmentos entre a memria principal e a memria secundria. Esse problema se aplica tanto a sistemas que implementam paginao como segmentao.

10 4

Questes
Um usurio observou que determinado computador com 32 MB de memria RAM leva mais tempo que outros computadores para executar alguns aplicativos. Verificou tambm que o computador acessa o disco rgido com mais freqncia que os outros. Nessa situao, possvel que a instalao de uma quantidade maiorde memria RAM melhore o desempenho desse computador. CERTO Na hierarquia de tecnologias de memria, que inclui registradores, memria principal, cache e discos, verifica-se que quanto maior a capacidade de armazenamento, maior o tempo de acesso. ERRADO

10 5

Questes
O compartilhamento de memria, que inclui registradores, memria principal, cache e discos, em qualquer nvel da hierarquia de memria, gera o problema de que um programa enderece o espao de memria de outro programa CERTO Memria virtual uma funcionalidade que permite aos programas enderear a memria de um ponto de vista lgico, sem considerar a quantidade de memria principal disponvel fisicamente.
CERTO

10 6

Questes
Em um ambiente com memria virtual, quando um processo faz referncia a um endereo virtual de dados que no esto na memria principal, ento, sem suspender a execuo desse processo, o sistema operacional deve entrar em ao para trazer esses dados da memria secundria para a memria principal. ERRADO

10 7

Das könnte Ihnen auch gefallen