Vous êtes sur la page 1sur 37

Gerenciamento de Memria - Captulo 7 Sistemas Operacionais

Prof. Dr. Jos Carlos Becceneri

Luciana Sda Cardoso

Sumrio
Definio Requisitos Tcnicas de Gerenciamento de Memria

Gerenciamento de Memria
Principal operao trazer programas para dentro da memria principal para ser executados pelo processador. Dividir dinamicamente a parte User da memria principal de forma que acomode vrios processos. Alocar a memria de forma eficiente para empacotar tantos processos na memria quanto possvel para evitar que o processador fique ocioso. Deve ser capaz de rodar um programa em que seu tamanho seja maior que o disponvel pela memria real.

Requisitos
Relocao Proteo Compartilhamento Organizao lgica Organizao fsica

Requisito - Relocao
Capacidade de mover um programa de uma regio da memria principal para uma outra sem invalidar as referencias de memria dentro do programa; O programador no sabe onde o programa colocado na memria quando ele executado O hardware do processador e o SO devem ser capazes de traduzir os endereos de referencia de memria no cdigo do programa para o endereo fsico da memria.

Tcnica de Endereamento -> Imagem do Processo

Requisito - Proteo
Cada processo deve ser protegido contra interferncias no desejveis de outros processos de forma acidental ou intencional Processos no devem ser capazes de referenciar localizaes de memria de outro processo sem permisso; O hardware responsvel por fazer a verificao, caso a violao ocorra, o mesmo deve abortar tais instrues no ponto da execuo; O SO no pode prever todas as referencias de memria que o programa far (custo muito alto).

Requisito - Compartilhamento
Permitir que vrios processos acessem a mesma rea de memria principal vantajoso, que :

processos que so executados em um mesmo programa acessem a mesma cpia do programa e Processos que esto cooperando em uma mesma tarefa compartilhem acesso a uma mesma estrutura de dados

Deve permitir o compartilhamento sem comprometer o requisito de proteo

Requisitos - Organizao Lgica


Capacidade de manipular com programas e dados do usurio organizado em mdulos
Memria -> seqncias de Bytes e palavras Programas -> mdulos

Vantagens:

Mdulo podem ser escritos e compilados independentemente, as referencias de um mdulo para o outro so resolvidas em tempo de execuo; Com um overhead adicional, diferentes graus de proteo (read only, execute only) podem ser dados para diferentes mdulos possvel introduzir mecanismo de compartilhamento entre mdulos

Requisito Organizao Fsica


Organizao da memria do computador:

Dois nveis:
Memria principal -> mais rpida, voltil e custo alto Memria secundria -> lenta, armazenamento

permanente e barata

Capacidade de mover informaes entre os 2 nveis de memria

Tcnicas de Gerenciamento de Memria


Partio de memria

Partio fixa Partio dinmica Sistema Buddy

Paginao simples Segmentao simples

Paginao de Memria Virtual Segmentao de Memria Virtual

Partio Fixa
Memria principal dividida dentro de um no. de parties estticas (tamanho igual ou diferente). O processo carregado dentro de uma partio de tamanho = ou >. Ponto forte: Simples de implementar, pouco overhead no sistema Ponto fraco: Fragmentao interna -> Uso ineficiente da memria principal. Qualquer programa, no importando o quanto pequeno , ocupa uma partio na memria.

Algoritmo de Locao
Partio de tamanho igual: todas as parties com o mesmo tamanho, no importa qual partio usada; Partio de tamanho diferente:

Dois caminhos:
Uma fila para cada partio -> Processos so

atribudos de forma a minimizar o desperdcio de memria na partio Uma nica fila para todas as parties ->Os processos so atribudos a partio de menor tamanho disponvel no momento.

Partio Fixa
Desvantagens:

(cont.)

No. de parties especificadas no tempo de gerao do sistema -> limita o no. de processos ativos dentro do sistema Tamanho das parties so setadas no tempo de gerao do sistema -> jobs pequenos utilizam os espaos das parties de forma ineficiente

Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramao com no. fixo de tarefa)

Partio Dinmica
Parties so criadas dinamicamente, de forma que cada processo alocado dentro da partio do mesmo tamanho do processo Ponto forte: No tem fragmentao interna e usa de forma mais eficiente a memria Ponto fraco: Uso ineficiente do processador por necessitar de compactao para solucionar a fragmentao externa (memria vai ficando cheia de vrios buracos)

Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramao com no. varivel de tarefa)

Algoritmo de Locao
O SO deve decidir qual bloco livre a ser alocado ao processo de forma eficiente.
Trs algoritmos podem ser usados:

First-fit : Procura dentro da memria a partir o inicio e escolhe o primeiro bloco que grande o suficiente para o processo a ser alocado; Next-fit: Inicia a procura a partir do local onde foi feito a ultima locao e escolhe o bloco que grande o suficiente para o processo a ser alocado Best-fit: Escolhe o bloco que mais se aproxima do tamanho requerido;

Qual deles o melhor?


First-fit :

Mais rpido e o melhor Ele gera no inicio da memria pequenas parties livres que necessitam ser pesquisadas a cada passo subseqente do first-fit

Next-fit:

Freqentemente aloca blocos livres no fim da memria Como resultado, blocos grandes de memria so quebrados rapidamente em blocos menores Compactao mais freqente requerida para obter grandes blocos no fim da memria
Tem a pior performance Procura pelo menor bloco que satisfaa o requisito Como resultado, a memria principal rapidamente quebrada em blocos muito pequenos que no podem satisfazer um pedido de alocao, exigindo assim uma compactao freqente

Best-fit:

Sistema Buddy
O espao disponvel total da memria tratado como um nico bloco de 2U (bloco de maior tamanho que pode ser alocado) Se um pedido de tamanho s tal que 2U-1 < s 2U,

Ento: o bloco completo 2U alocado Seno: O bloco divido em 2 buddies iguais. A diviso continua at que o bloco encontrado seja > ou = ao s requerido.

Uma forma modificada deste sistema usada para alocao de memria no kernel do UNIX. Tambm tem sido usado em aplicaes de sistemas paralelos (alocao e liberao de programas paralelos).

Paginao Simples
A memria divida em pequenos pedaos de tamanho igual chamados frames. Cada processo dividido em pequenos pedaos de tamanho igual ao do frame chamado pages. Quando um processo carregado na memria, todas as suas pginas so carregadas dentro dos frames disponveis, e uma tabela de pgina setada. Os frames usados no precisam estar em seqncia. Ponto forte: No tem fragmentao externa

Ponto fraco: tem uma pequena quantidade de fragmentao interna.

Como o SO controla as pginas alocadas e os frames livres?


O SO usa: Conceito de endereo lgico; Mantm ma tabela de frames livres ; Mantm uma tabela de pagina para cada processo, contendo a localizao do frame para cada pagina do processo.

Dentro do programa, cada endereo lgico consiste: um nmero de pagina + um offset da pagina Exemplo: Endereo lgico= Page 1 e offset 478
0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0

Traduo do endereo lgico para o endereo fsico feito pelo hardware do processador , da seguinte forma:
0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 Tabela de Pgina 0 0 0 0 1 0 1 10 0 0 1 1 0 20 1 1 0 0 1 Endereo fsico 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 Endereo lgico

Segmentao Simples
Cada processo dividido em um nmero de segmentos de tamanho desigual (limitado pelo tamanho mximo). Um processo carregado na memria, todos os seus segmentos so carregados dentro de parties dinmicas que no necessitam ser continuas. Ponto forte: No tem fragmentao interna Ponto fraco: Tem uma pequena quantidade de fragmentao externa

Exemplo de Segmentao

1400 2400

Segmento 0

Sub-rotina

3200

Segmento 3 Segmento2 Segmento 4

pilha Programa principal Tabela de smbolos

4300
4700

5700 6300 6700

Segmento 1

Variveis Globais

Como o SO controla os segmentos alocados e blocos livres?


O SO mantm:

Conceito de endereo lgico mantm uma tabela de blocos livres ; mantm uma tabela de segmentos para cada processo, contendo a endereo inicial na memria principal (base) + o tamanho do segmento (limite).

Exemplo de uma Tabela de Segmento

0 1

2
3 4

Base 1400 6300 4300 3200 4700

Limite 1000 400 400 1100 1000

Traduo do endereo lgico para o endereo fsico feito pelo hardware do processador , da seguinte forma:
Segmento Offset

0 0 0 1 0 0 10 1 1 1 1 0 0 0 0 0 001011101110 1 011110011110
Limite

Endereo lgico

Tabela de Segmento

0000010000000000 0010000000100000 Base

Endereo fsico

0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0

Memria Virtual - Paginao


igual a paginao simples, exceto que no necessita ser carregada todas as pginas do processo. Paginas no residentes que so necessrias, so trazidas mais tarde automaticamente. Ponto forte: No tem fragmentao externa; Alto grau de multiprogramao; Espao para grandes processos virtuais. Ponto fraco: Overhead no gerenciamento complexo de memria.

Memria Virtual Segmentao


igual a segmentao simples, exceto que no necessita ser carregada todas os segmentos do processo. Segmentos no residentes que so necessrias, so trazidas mais tarde automaticamente. Ponto forte: No tem fragmentao interna; Alto grau de multiprogramao; Espao para grandes processos virtuais; Suporte de proteo e compartilhamento. Ponto fraco: Overhead no gerenciamento complexo de memria.

Vous aimerez peut-être aussi