34
IC - UFF Sistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Sistemas Operacionais

Gerenciamento de memória

Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

Page 2: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

O problema

●  Em um ambiente multiprogramado, é necessário: ■  subdividir a memória para acomodar múltiplos

processos ■  mas se poucos processos estão na memória, em boa

parte do tempo estarão esperando por E/S ●  UCP sub-utilizada

■  então, deve-se alocar memória de forma eficiente ao maior número de processos

Gerenciador de Memória

Page 3: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Alguns requisitos do GM

Relocação ■  o programador não deve se preocupar com o local

onde o programa (processo) será carregado para execução

■  durante a execução, o processo poderá sair da memória e retornar para um local diferente

■  referências devem ser resolvidas para endereços de memória física

■  p. ex. - bloqueado para suspenso

Page 4: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Alguns requisitos do GM

Proteção ■  processos não devem poder referenciar posições

de memória em outros processos sem permissão ■  em virtude da relocação, não é possível testar

endereços em programas ●  com suporte de h/w, o teste deverá ser em

tempo de execução

Page 5: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Alguns requisitos do GM

Compartilhamento ■  deve-se permitir que vários processos possam

acessar a mesma porção de memória ■  o mecanismo de proteção deve ter flexibilidade

●  caso por exemplo, exclusão mútua

Page 6: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Alguns requisitos do GM

Organização lógica ■  programas são normalmente separados em módulos,

que podem ser escritos e compilados separadamente

■  graus diferentes de proteção podem ser atribuídos aos módulos

■  compartilhamento de módulos ■  manipulação de diferentes módulos de um mesmo

executável pode ser melhor realizada através de segmentação

Page 7: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Alguns requisitos do GM

Organização física ■  memória é organizada como uma hierarquia ■  se um programa precisa de mais memória do que o

disponível na MP, a MS deverá ser utilizada ■  uso de memória cache ■  este gerenciamento deverá ser feito de forma

transparente pelo SO

Page 8: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento fixo

Particionamento da memória em regiões fixas ●  Se partições idênticas

■  processos menores que o tamanho da partição podem ser carregados diretamente.

■  Processos maiores exigirão overlay. ●  programa dividido em modulos que

compartilham uma mesma partição ●  modularização geralmente responsabilidade

do programador

Page 9: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento fixo

Particionamento da memória em regiões fixas ■  Se processos menores

●  fragmentação interna ●  desperdício de MP

Page 10: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento fixo

Partições de tamanhos distintos ■  diminuem a ineficiência (não a elimina) ‏■  associa o processo à partição menor possível ■  aumenta a sobrecarga do gerenciamento (e.g., uma

fila por partição ou fila única?) ‏●  De qualquer forma:

■  o número de partições determina o número de processos no sistema

■  processos pequenos utilizam de maneira ineficiente a memória

■  relocação

Page 11: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento fixo – tamanho variável

Page 12: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento fixo – tamanho variável

Page 13: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento dinâmico

●  Número e tamanho das partições é variável ●  Cada processo recebe a quantidade de memória

que necessita ●  Gerenciando buracos e processos

SO P1 320k

SO SO

P1

P3 288k

SO SO

P1

P2

P2 224k

SO SO

P1

P2

P3

P4 128k - sem espaço - SO faz swap out - SO escolhe P1

Page 14: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento dinâmico

SO SO

P2

P3

!  buracos começam a ser formados !  tamanhos tentem a ser pequenos !  necessidade de rearrumar os espaços

P4

Page 15: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento dinâmico

Page 16: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento dinâmico

Políticas de alocação ■  primeiro encaixe (o melhor) - first fit

●  seleciona o primeiro que encaixa, a partir do início ●  mais simples, mais rápido e melhor na maioria das vezes

■  próximo encaixe (um pouco pior) – next fit ●  seleciona o primeiro que encaixa, a partir da última

partição selecionada ●  usualmente seleciona para o final da MP

■  melhor encaixe (o pior!) - best fit ●  de todas as partições, seleciona aquela imediatamente

maior ●  mais custoso, maior grau de fragmentação externa

Page 17: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Particionamento dinâmico

●  Buracos na memória: fragmentação externa ●  Compactação: tempo perdido e relocação dinâmica

(melhoria com swapping) ‏●  Sobrecarga maior que método fixo ●  Em qualquer caso, relocação ●  Então, o que fazer?

Page 18: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Gerenciando buracos e processos

●  Mapas de bits (b): simples; ineficiência ●  Listas encadeadas (c) ‏

■  no caso de particionamento dinamico, minimizar fragmentação externa pode ser custoso

●  Buddy System

Page 19: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Sistema “Buddy”

●  O espaço disponível total da memória é tratado como um único bloco de 2U

●  Se um pedido de tamanho s é tal que 2U-1 < s ≤ 2U,

■  aloca todo o bloco de 2U ●  Senão divide o bloco em dois 2 “buddies” iguais de 2U-1

cada e aloca um bloco se 2U-2-1 < s ≤ 2U-1 ■  A divisão continua até que o bloco encontrado seja > ou = ao s

requerido.

Page 20: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Sistema “Buddy”

●  É uma tentativa de diminuir e concatenação e realocação ■  diminui fragmentação externa ■  mas pode aumentar a fragmentação interna

Page 21: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Realocação

●  Mapeamento de endereços virtuais em reais ●  necessário, pois processos são alocados em espaço de

MP dinamicamente Ex.: processo P1

P1:

novo pronto

bloqueado executando

P1 em end. de MP 500

P1 passa para suspenso

Ao voltar para MP " P1 vai para end. 1024

Page 22: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Realocação

●  Mapeamento eficiente ■  endereço físico só calculado quando acesso a MP ■  endereços definidos: lógico, relativo, físico

●  Registradores: ■  base – armazena o endereço inicial de MP do processo

(quando o processo passa para executando) ‏■  limite – armazena endereço final do processo

●  Acesso ao endereço Z no programa if (Z + base <= limite)

acesse Z+base senão “trap”

Page 23: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Relocação

PCB

programa

dados

pilha

registrador de base

somador

imagem do processo na memória

endereço relativo

registrador limite

comparador

int

endereço absoluto

Page 24: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação

●  Problemas tanto em particionamento fixo quanto dinâmico: ■  fixo – fragmentação interna ■  dinâmico – fragmentação externa e realocação dinâmica ■  buddy – pode ter sua sobrecarga também

●  Solução: ■  Processo é dividido em páginas (blocos de processos) ‏■  MP é dividida em quadros de mesmo tamanho

Page 25: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação

●  As páginas do processo não precisam estar em quadros seguidos da mamória principal

●  Páginas/quadros são de pequeno tamanho (e.g., 1K): ■  Fragmentação interna pequena ■  Elimina fragmentação externa

●  No entanto, lembrando sobre realocação: ■  SO mantém uma tabela de páginas por processo

Page 26: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação

Exemplo: número de páginas/processo

5 D 4 C 3 B 4 A

Processos A, B, C estão prontos

C4 C3 C2 C1 B3 B2 B1 A4 A3 A2 A1

Page 27: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação

C4 C3 C2 C1

A4 A3 A2 A1

B termina D é submetido

D4 D5

C1 C2 C3 C4

A1 A2 A3 A4

D3 D2 D1

Page 28: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação

●  Processo ainda é carregado completamente para a MP ■  no caso de Memória Virtual, não ocorre necessariamente)

●  Processo não precisa ocupar área contígua em memória

●  Endereços são gerados dinamicamente em tempo de execução

●  Somente um registrador então, não é suficiente

Tabela de Páginas

Page 29: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação: suporte de h/w

●  Cada processo tem sua tabela de páginas (TP) ‏■  TP: mapeamento página x quadro ■  Bit de presença ■  Bit de modificação

●  Como funciona? ■  endereço lógico Z - no da pagina + offset dentro da

página

Page 30: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação: suporte de h/w

●  Ex.: processo tem 8 endereços, 4 endereços por página

pág. 1

pág. 2

0

1

2

3

4

5

6

7

0 00 0 01 0 10 0 11 1 00 1 01 1 10 1 11

Page 31: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Paginação: suporte de h/w

●  Ex.: endereço lógico (16 bits) – 1502 ●  tamanho da página 1K bytes (cada endereço armazena 1 byte) ‏●  1502 " 0000010111011110 Tabela de Páginas

y 0

1

2

3

4

5

w

z

Endereço real = 1K * w + 478 " frame tem 1K

210 endereços/página " 10 bits para especificar o offset (478) dentro de uma página

000001 0111011110 Logo, restam 6 bits do end. lógico para

especificar a página " página 1

Page 32: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Segmentação

●  Programas são normalmente separados em módulos: unidade lógica

●  Segmentos de um programa não precisam ser do mesmo tamanho

●  Existe um tamanho máximo para o segmento ●  Usuário tem controle ●  elimina fragmentação interna (mas pode haver,

externa)

Page 33: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Segmentação

Tabela de Segmentos ●  entrada = endereço inicial na MP e tamanho do

segmento ●  cálculo do endereço real similar a paginação. Como?

Page 34: Sistemas Operacionais - UFFboeres/slidesSOI/CapSO_05a.pdfSistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings

IC - UFF

Exercício

1)  Considere um espaço de endereçamento lógico de oito páginas de 1024 palavras cada, mapeado em um memória física de 32 quadros. Quantos bits existem no endereço lógico? E no endereço físico?

2)  Considere um sistema em que a memória é gerenciada por uma lista encadeada de blocos disponíveis, de diferentes tamanhos. Essa lista é definida por uma estrutura de dados contendo o endereço base do bloco, o tamanho de cada bloco e um apontador para o próximo elemento da lista. Existem dois apontadores, um para o primeiro elemento da lista, e outro para o último. Escreva o procedimento addr = allocmem (n), onde n é o tamanho do bloco que deve ser alocado e addr contém, no retorno da chamada, o endereço base do bloco alocado. A técnica de alocação a ser utilizada é First-Fit. Escreva também o procedimento free(addr).