• Nenhum resultado encontrado

Sistemas Operacionais

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Operacionais"

Copied!
6
0
0

Texto

(1)

Instituto de Informática

-U

FRGS

Sistemas Operacionais

Gerência de Memória

Alocação Particionada

Aula 18

Instituto d e Informática -UFRGS Sistemas Operacionais 2 A. C arissimi -11-no v.-1 9

Introdução

Memória é um recurso limitado

 Um programa (processo) para ser executado deve estar na memória

Necessidades do gerenciamento de memória

 Racionalizar a ocupação da memória (alocação de memória)  Determinação das áreas livres e ocupadas

A alocação de memória depende:

 Amarração de endereços é estática ou dinâmica?  Necessidade do espaço físico ser contíguo ou não?  Processo caber ou não na memória?

 Grau de multiprogramação efetiva* desejada

* Número de processos no escalonador de curto prazo!

Instituto

d

e Informática

-UFRGS

Mecanismos para alocação de memória

Estratégias para alocar memória para processos

Supor, por enquanto, que o espaço lógico é sempre menor que o

espaço físico (processo cabe na memória)

 A memória virtual retirará esse restrição (chegaremos lá!!)

Sistemas Operacionais 3 A. C arissimi -11-no v.-1 9 Paginação Segmentação

Segmentação com paginação Simples Particionada Contígua Não contígua Alocação Estática Dinâmica Instituto d e Informática -UFRGS

Dimensionando espaço para um processo

Processo possui quatro segmentos (regiões)

 Código, dados, pilha e heap (monte)

Os segmentos de código e dados são dimensionados com base em

informações do próprio executável

Segmento de pilha e heap são pré-reservados

 Para a pilha é feita uma pré-alocação dentro da área pré-reservada  O heap é a “sobra” entre o tamanho total de processo menos a área de

código, dados e pilha.

Sistemas Operacionais 4 A. C arissimi -11-no v.-1 9 código dados Pilha 0 n-1 heap n bytes Do arquivo executável

(2)

Instituto d e Informática -UFRGS Sistemas Operacionais 5 A. C arissimi -11-no v.-1 9

Alocação contígua simples

Sistema primitivo

Memória principal é dividida em duas partições:

 Sistema operacional (parte baixa ou alta da memória)  Processo do usuário (restante da memória)

Usuário tem controle total da memória podendo

inclusive acessar a área do sistema operacional

 e.g. DOS (não confiável)

Evolução:

Inserir proteção através de mecanismos de hardware  Registradores de base e de limite

Memory Management Unit (MMU)

SisOp 0 N-1 RAM Monotarefa (MS-DOS) Contígua simples (uma partição) Instituto d e Informática -UFRGS Sistemas Operacionais 6 A. C arissimi -11-no v.-1 9

Alocação contígua particionada

Extensão natural do sistema de duas partições

 Definição de múltiplas partições

Necessidade imposta pela multiprogramação

Filosofia:

 Dividir a memória em blocos (partições)

 Cada partição pode receber um processo (programa em execução)

Duas formas básicas:

 Alocação contígua com partições fixa (estática)

 Podem ser com o mesmo tamanho ou diferentes tamanho  Alocação contígua com partições variáveis (dinâmica)

 Alocação é por demanda

Instituto

de Informática

-UFRGS

Alocação contigua particionada fixa (estática)

A. C arissimi -11-no v.-1 9 SisOp 0 N-1 RAM p M SisOp 0 N-1 RAM pi M pk Multitarefa n partições = M/p Multitarefa x partições

1 tarefa (processo) por partição

...

...

Tamanhos idênticos Tamanhos diferentes Instituto d e Informática -UFRGS A. C arissimi -11-no v.-1 9

Questões sobre alocação contígua particionada fixa

Processos podem ser carregados em qualquer partição?

 Depende se código é absoluto ou relocável e do tipo de amarração

Número de processos que podem estar em execução ao mesmo tempo

Grau de multiprogramação efetiva é limitado pelo número de partições

Programa é maior que o tamanho da partição

Não executa a menos que se empregue um esquema de overlay

A

B C

D E

Interpretação:

- Módulo A e B devem estar em memória OU - Módulo A e C devem estar em memória

(3)

Instituto

d

e Informática

-UFRGS

Gerenciamento da memória com partições estáticas

Necessário

Definir quais partições estão livres e ocupadas (ex. bitmap)

Possíveis estratégias para alocação de processos

 Fila por partição

 Processos vão para uma determinada partição (desde que caibam nela)  Efeito colateral: partições com filas de espera enquanto há outras vazias  Fila única para todas as partições

 Processo pode ir para qualquer partição desde que caiba nessa partição

Sistemas Operacionais 9 A. C arissimi -11-no v.-1 9 Instituto d e Informática -UFRGS

Problemas com alocação particionada estática

Maior processo possível é limitado pelo tamanho da maior partição

Unidade de alocação é a partição

 Processo menor que a partição leva a desperdício  Fragmentação interna Sistemas Operacionais 10 A. C arissimi -11-no v.-1 9

Alocação por demanda, isso é, variável !!

Solução:

SisOp

0

N-1 RAM

Quantidade de partições limita grau de

multiprogramação efetiva

 Processos no escalonador de curto prazo devem estar na memória Fragmentação interna p p p Instituto d e Informática -UFRGS

Alocação contígua particionada dinâmica (variável)

Não há pré-particionamento da memória

 Aloca por demanda, libera quando processo termina  Soluciona o problema de fragmentação interna

Sistemas Operacionais 11 A. C arissimi -11-no v.-1 9 SisOp 0 N-1 RAM SisOp 0 N-1 RAM SisOp 0 N-1 RAM SisOp 0 N-1 RAM livre livre livre livre livre Instituto de Informática -UFRGS

Problemas com partição variável

Necessidade de gerenciar as “lacunas” livres e ocupadas

 Lista de lacunas livres (início e tamanho)  Critério de escolha de lacunas livres

Best fit: escolher lacuna que minimiza a sobraWorst fit: escolher lacuna que maxima a sobra

First fit: escolher a primeira lacuna que o processo cabeCircular fit: variação do first-fit (inicia pesquisa de onde parou)

Desperdício de memória (geração de fragmentos)

 Memória livre não aproveitável entre as partições  Fragmentação externa Sistemas Operacionais 12 A. C arissimi -11-no v.-1 9 SisOp 0 N-1 RAM livre livre livre livre

(4)

Instituto d e Informática -UFRGS

Compactação e concatenação

Problema fundamental:

 Não haver memória livre contígua para receber um processo

Compactação e concatenação

 Mover as áreas contíguas para ficarem próximas (compactação) e uni-las para formar uma única partição contigua livre (concatenação)

Sistemas Operacionais 13 A. C arissimi -11-no v.-1 9 SisOp 0 N-1 livre livre livre livre SisOp 0 N-1 livre livre livre livre SisOp 0 N-1 livre Novo problema: Ajuste de endereços Compactação Concatenação Memória lógica versus memória física Instituto d e Informática -UFRGS

Carga de programa em memória

Independente do tipo de partição (fixa ou dinâmica), há o problema

de onde carregar o programa

 Depende se o código e relocável ou absoluto e da existência de amarração dinâmica.

Código executável relocável

 Programa pode ser carregado em qualquer partição

Código executável absoluto

 Opção I: carregado apenas no local para onde foi gerado (end. de ligação)  Opção II: com amarração dinâmica, pode ser carregado e qualquer local

Sistemas Operacionais 14 A. C arissimi -11-no v.-1 9 Instituto d e Informática -UFRGS

Aumento do grau de multiprogramação

Quantidade de processos que disputam a atenção da CPU

 Limitado pela quantidade de memória RAM disponível e pelo tamanho dos processos e/ou partições

Multiprogramação efetiva:

 Quantidade de processos que estão no escalonador de curto prazo

Como aumentar o grau de multiprogramação?

 Usando o disco como um “expansor” de memória  Área de swap

 Memória disponível é RAM + área de swap

A. C arissimi -11-no v.-1 9 Instituto d e Informática -UFRGS A. C arissimi -11-no v.-1 9

Swapping

Obtenção de área de memória livre através do armazenamento

temporário de um processo em disco (área de swap)

 Candidatos potenciais são aqueles em estado bloqueado ou que já executaram demasiadamente no escalonador de curto prazo

Operação de swapping é sobreposta ao processamento

 E/S realizada através de DMA

Procedimentos de swap-in e swap-out

Realizado por um processo especial (swapper deamon)

Otimizações:

 Copiar para o disco apenas as áreas que foram modificadas (dados e pilha)  Partição específica para o swap

(5)

Instituto d e Informática -UFRGS

Área de swap

Forma de aumentar o grau de multiprogramação

 Rodízio de processos entre memória e disco)

Restrições para swap-in

 O processo NÃO pode ser carregado em local diferente de sua primeira carga, pois em um processo não há informação de relocação

Solução: código absoluto e e amarração em tempo de execução por

hardware (dinâmica) Sistemas Operacionais 17 A. C arissimi -11-no v.-1 9 Pi Pk swap-out swap-in

Escalonador de médio prazo é quem decide sobre os processos “vítimas” para irem ao disco

Instituto d e Informática -UFRGS Sistemas Operacionais 18 A. C arissimi -11-no v.-1 9

Partições fixas e amarração

Com código absoluto sem amarração dinâmica

 Um processo só pode ser carregado em uma determinada partição  Pode haver disputa por uma partição mesmo tendo outras livres

 Processo é mantido no escalonador de longo prazo (termo)  Empregar swapping (escalonamento de médio prazo)

Com código absoluto com amarração dinâmica

 Processo pode ser carregado em qualquer partição de maior ou igual tamanho  Se todas as partições estão ocupadas, duas soluções:

 Processo é mantido no escalonador de longo prazo  Empregar swapping (escalonamento a médio prazo)

Código realocável após carregado apresenta mesmos problemas de

um código absoluto sem amarração dinâmica

Instituto

d

e Informática

-UFRGS

Problema: alocação de memória

A criação de um processo implica alocação de memória

 Como dimensionar o tamanho do processo?  Onde alocar?

Duas estratégias para alocação

 Reservar um tamanho prefixado

 Erros de dimensionamento: desperdício versus erros de execução  Espaço lógico <= espaço físico

 Consumir de memória por demanda até um limite (Memória virtual)  Espaço lógico > espaço físico

Sistemas Operacionais 19 A. C arissimi -11-no v.-1 9 Instituto d e Informática -UFRGS

Um pouco mais sobre alocação contígua e gerência...

Executável fornece informações para áreas de código e dados

A área para a pilha e heap é definida com um critério e subdivididas

 Um tamanho é pré-definido e préalocado  Uma porção é pré-reservada para pilha

 Gerência é na base LIFO sendo alocado espaço suficiente para endereço de retorno, argumentos da função, variáveis locais (stack frame)

O restante é para o heap

 Gerenciado com técnicas similares a alocação particionada dinâmica

Best-fit, worst-fit, first-fit, circular fit e outros mais elaborados

Necessário alocar áreas para estruturas do próprio sistema

operacional

 Alocadores: sistema buddy, slab, Lazy buddy, McKusick-Karels

Sistemas Operacionais 20 A. C arissimi -11-no v.-1 9

(6)

Instituto d e Informática -UFRGS Sistemas Operacionais 21 A. C arissimi -11-no v.-1 9

Sistema buddy

Compromisso entre partição fixa e partição variável

Considera um segmento de memória

Memória é dividida em um certo número de blocos de espaços livre

 Tamanho em potência de 2

 Um bloco de tamanho 2 i é dividido em 2 blocos de tamanho 2 i-1(buddies)

256 k 128 k 64 k 32 k Instituto d e Informática -UFRGS Sistemas Operacionais 22 A. C arissimi -11-no v.-1 9

Sistema buddy: vantagens e desvantagens

Vantagem:

 Rapidez na alocação

Capacidade de fusionar buddies

Desvantagem:

 “Arredondar” para a próxima potência de 2 leva a fragmentação interna

Custo “gerencial”

Necessário manter a lista de blocos livres e ocupados, concatenar buddies etc

Exemplo de emprego:

 Operações de E/S transferem diretamente dados de periféricos para memória via DMA, curto-circuitando a gerência de memória

 Solução é alocar contiguamente uma área de memória para E/S

Instituto d e Informática -UFRGS

Alocação slab

Baseado em uma hierarquia de componentes

 Objeto – cache – slab

Princípio:

 Objetos são estruturas genéricas próprias do núcleo (PCBs, IOBlock, FCB, etc)  Uma cache para cada “classe” de objetos

 Slab: uma ou mais páginas contíguas

A. C arissimi -11-no v.-1 9 RAM slab1 slabn Cache1 Cachen Pré-alocados!!! Instituto d e Informática -UFRGS A. C arissimi -11-no v.-1 9

Leituras complementares

A. Tanenbaum. Sistemas Operacionais Modernos (3

a

edição),

Pearson Brasil, 2010.

 Capítulo 3: seção 3.2.3

A. Silberchatz, P. Galvin; Sistemas Operacionais. (7

a

edição).

Campus, 2008.

 Capítulo 8 (seção 8.3)

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora

Bookman 4

a

edição, 2010

Referências

Documentos relacionados

As projecções dos fluxos de caixa basearam-se nas expectativas de desenvolvimento do negócio, prevendo-se um impacto positivo na margem EBITDA da incorporação obrigatória de

Nesse sentido, as PMEs são aquelas que mais precisam e necessitam da inovação para alcançarem essa eficiência e produtividade exigida pela globalização a fim de

Os apoios a conceder no âmbito da acção n.º 2.2.1 «Alteração dos modos de produção» e da acção n.º 2.2.4 «Conservação do solo», são cumuláveis com os apoios a conceder

Entidade Promotora Parceria Melhorar a integração sócio- escolar Crianças do Pré-escolar público e 1º CEB - Desenvolver a motivação escolar; - Diminuir o absentismo

As amostras foram coletadas após 12 horas de jejum, utilizando- se tubos a vácuo com gel separador (Vacutainer Systems - Becton Dickinson). As dosagens bioquímicas foram

Para a dosagem de zinco pelo método de análise por ativação com nêutrons foi utilizada amostra de soro coletada em tubo a vácuo, sem heparina.. Para a dosagem de zinco

Em certo momento, Pooyan parece fazer esse deslocamento ao se referir à igualdade como parte dos princípios que servem para descrever “Estados democráticos liberais” e

Agora na sua segunda geração, o R9500² está pronto para estabe- lecer uma nova referência tecnológica na tecelagem de pinça, en- riquecendo ainda mais as principais