A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerência de Memória Sistemas Operacionais I

Apresentações semelhantes


Apresentação em tema: "Gerência de Memória Sistemas Operacionais I"— Transcrição da apresentação:

1 Gerência de Memória Sistemas Operacionais I
Módulo 8

2 GERÊNCIA DE MEMÓRIA Premissa
A memória real é o recurso de armazenamento de acesso direto Processos devem ser carregados para a memória real No todo Em parte O S.O. deve permanecer na memória real e ocupar o menor espaço possível Sistemas Operacionais I - Versão Beta 3 24/04/2001

3 GERÊNCIA DE MEMÓRIA Premissa
Endereçamento de instruções e dados podem ser constituído de três formas Tempo de compilação (Compile Time) Se a(s) locação(ções) de memória são conhecidas, então o código pode possuir endereçamento absoluto É necessários recompilar o programa se a(s) locação(ções) forem alteradas Sistemas Operacionais I - Versão Beta 3 24/04/2001

4 GERÊNCIA DE MEMÓRIA Premissa
Endereçamento de instruções e dados podem ser constituído de três formas Tempo de carga (Load Time) Se a(s) locação(ções) de memória não são conhecidas, é necessário gerar código relocável Tempo de execução (Execution Time) Endereçamento é constituído dinamicamente, durante a execução, se o processo for movido de uma área de memória para outra É necessário suporte de hardware para mapear os endereços Sistemas Operacionais I - Versão Beta 3 24/04/2001

5 GERÊNCIA DE MEMÓRIA Problema Solução-Problema
É necessário otimizar o uso da área de memória real Solução-Problema Subdividir a memória em unidades de alocação De que forma? Quais os requisitos para a gerência? Sistemas Operacionais I - Versão Beta 3 24/04/2001

6 GERÊNCIA DE MEMÓRIA Requisitos O S.O. precisa:
Alocar espaços na memória para programas De forma explícita ou implícita De-alocar espaços quando necessário Efetuar a manutenção das tabelas Ex: mapear memória virtual na memória física Decidir quanto de memória alocar a cada processo e quando um processo será removido da memória Sistemas Operacionais I - Versão Beta 3 24/04/2001

7 GERÊNCIA DE MEMÓRIA Requisitos Relocação
Definição: ajuste no programa executável para que execute em um conjunto pré estabelecido de endereços de memória. O processo não tem locação de memória pré-fixada O processo pode ser retirado (swapped out) da memória e retornar em qualquer outra locação Sistemas Operacionais I - Versão Beta 3 24/04/2001

8 GERÊNCIA DE MEMÓRIA Requisitos Relocação Necessidade
O endereçamento não pode ser absoluto As referências precisam ser transformadas em endereços reais Sistemas Operacionais I - Versão Beta 3 24/04/2001

9 GERÊNCIA DE MEMÓRIA Requisitos Relocação Formas básicas de relocação
Em tempo de execução (Hardware) Em tempo de compilação No boot do sistema esse método ainda é utilizado Sistemas Operacionais I - Versão Beta 3 24/04/2001

10 Data (já incializados)
GERÊNCIA DE MEMÓRIA Requisitos Relocação Formas básicas de relocação Em tempo de carga, pelo sistema operacional. É lento. O programa não pode mudar de área Estrutura do programa: Cabeçalho Text Data (já incializados) Dicionário de Relocação Sistemas Operacionais I - Versão Beta 3 24/04/2001

11 GERÊNCIA DE MEMÓRIA Requisitos Proteção
Processos não podem acessar áreas de outros processos sem prévia autorização Problema Complexidade da verificação dos acessos Relocação e endereços dinâmicos Acessos devem ser verificados a tempo de execução pelo hardware Sistemas Operacionais I - Versão Beta 3 24/04/2001

12 GERÊNCIA DE MEMÓRIA Requisitos Compartilhamento
Permitir que vários processos façam acesso à mesma área de memória Compartilhar código executável Compartilhar área de dados Controlar acesso a áreas de memória sem comprometer a proteção do S.O. Sistemas Operacionais I - Versão Beta 3 24/04/2001

13 GERÊNCIA DE MEMÓRIA Requisitos Estrutura lógica
Organização da memória em lista linear de endereços Programas são organizados em módulos Vantagens da implementação integrada Compilação independente dos módulos Proteção apropriada dos módulos Compartilhamento de módulos entre os processos Sistemas Operacionais I - Versão Beta 3 24/04/2001

14 GERÊNCIA DE MEMÓRIA Requisitos Estrutura física Problema
A memória real pode ser insuficiente para um processo Sistemas Operacionais I - Versão Beta 3 24/04/2001

15 GERÊNCIA DE MEMÓRIA Requisitos Estrutura física Solução Overlaying
Dividir em módulos que não são carregados simultaneamente Uma rotina é responsável pela carga dos módulos Solução complexa O programador pode não ter conhecimento da memória disponível Sistemas Operacionais I - Versão Beta 3 24/04/2001

16 RELOCAÇÃO Quando um processo é carregado para a memória as referências a memória real (endereço absoluto) precisam ser ajustadas Motivo Processos podem ocupar diferentes áreas de memória Partições diferentes Causas SWAPING Compactação Sistemas Operacionais I - Versão Beta 3 24/04/2001

17 ENDEREÇAMENTO Lógico/Virtual Físico
Referência a uma posição de memória independe da localização REAL na memória Gerado pela CPU Também conhecido como endereço virtual Tradução endereço-lógico  endereço-físico Físico Endereço REAL na memória Sistemas Operacionais I - Versão Beta 3 24/04/2001

18 ENDEREÇAMENTO Relativo
O endereço é expresso em relação a algum ponto base Base+Deslocamento Sistemas Operacionais I - Versão Beta 3 24/04/2001

19 ENDEREÇAMENTO Endereçamento lógico e físico
são idênticos no endereçamento constituído em tempo de compilação e em tempo de carga. São diferentes no caso do endereçamento constituído em tempo de execução Sistemas Operacionais I - Versão Beta 3 24/04/2001

20 ENDEREÇAMENTO Memory-Management Unit (MMU)
Dispositivo de Hardware que mapeia endereços virtuais em físicos No esquema MMU, o conteúdo no registrados de relocação é adicionado a qualquer endereço gerado pelo processo O processo utiliza endereço lógico. NUNCA usa endereço físico Sistemas Operacionais I - Versão Beta 3 24/04/2001

21 ENDEREÇAMENTO Suporte de Hardware PCB TEXT DS SS Registrador de Base
Endereço relativo Registrador de Base PCB Registrador de Limite TEXT Somador DS Comparador SS End. Absoluto S.O. Int Sistemas Operacionais I - Versão Beta 3 24/04/2001

22 ENDEREÇAMENTO Registradores utilizados
Registrador de base (Base register) Endereço inicial do processo Registrador de limite (Bounds register) Endereço final do processo Estes valores são ajustados quando o processo é carregado ou swapped in Sistemas Operacionais I - Versão Beta 3 24/04/2001

23 ENDEREÇAMENTO Registradores utilizados
O valor no registrador de base é somado a um endereço relativo para produzir um endereço absoluto O resultado é comparado com o registrador de limite Se não estiver contido no limite permitido, uma interrupção é gerada Sistemas Operacionais I - Versão Beta 3 24/04/2001

24 SWAPPING Um processo pode ser retirado temporariamente da memória e retornar após algum tempo Backing store Área em disco, veloz, grande o suficiente para acomodar as cópias de imagens da memória (de todos ou parte dos usuários) É necessário prover acesso direto a essas imagens Sistemas Operacionais I - Versão Beta 3 24/04/2001

25 SWAPPING O tempo dispensado Roll out, roll in
Variante da técnica swapping utilizada por algoritmos de escalonamento priority-based Processos com baixa prioridade são swapped-out para dar lugar a processos com alta prioridade O tempo dispensado É gasto com a transferência de dados É proporcional a quantidade de memória a ser swapped. Sistemas Operacionais I - Versão Beta 3 24/04/2001

26 SWAPPING S.O. Espaço Usuário P1 P2 M.R. Backing Store
Sistemas Operacionais I - Versão Beta 3 24/04/2001

27 ALOCAÇÃO DE MEMÓRIA Alocação contígua simples
Comum em S.O. monoprogramáveis A memória é dividida em duas partes S.O. Processo usuário Memória Real Processo Usuário Sistema Operacional Sistemas Operacionais I - Versão Beta 3 24/04/2001

28 ALOCAÇÃO DE MEMÓRIA Alocação contígua simples
O programador é responsável por evitar violar a região onde reside o S.O. Algumas implementações de S.O. delimitam o espaço máximo de endereçamento do processo usuário Uso de overlay Sistemas Operacionais I - Versão Beta 3 24/04/2001

29 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Motivação: multiprogramação Divisão da memória em pedaços Tamanhos Iguais diferentes Parâmetro de sistema Quando gerado Quando inicializado Sistemas Operacionais I - Versão Beta 3 24/04/2001

30 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Cada partição comporta processos com requisitos de memória menor ou igual a partição Uso ineficiente da memória, causando desperdício de memória na partição (Fragmentação Interna) Se todas as partições estiverem alocadas o S.O. pode utilizar o swapping para carregar mais processos Se o processo não couber na partição pode-se utilizar a técnica de overlay (ovl) Sistemas Operacionais I - Versão Beta 3 24/04/2001

31 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Endereçamento absoluto Processo só pode ser carregado na mesma região de memória Endereçamento virtual Processo pode ser carregado em qualquer região de memória Registrador de relocação Sistemas Operacionais I - Versão Beta 3 24/04/2001

32 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Tamanhos iguais Memória Real Partição 1 Partição 2 Partição 3 P1 P2 S.O. Fragmento Pn = Fragmento + Partição Processo não pode ser executado Sistemas Operacionais I - Versão Beta 3 24/04/2001

33 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Tamanhos iguais Memória Real Partição 1 Partição 2 Partição 3 P1 P2 S.O. Carga do Principal Fragmento Pn (Principal) Pn (OVL) Carga do Ovl Sistemas Operacionais I - Versão Beta 3 24/04/2001

34 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Tamanhos diferentes Processo é alocado na menor partição que o comporte Minimiza o problema de fragmentação interna mas não o elimina Fragmento P1 P2 Partição 1 Partição 2 Partição 3 S.O. P3 Sistemas Operacionais I - Versão Beta 3 24/04/2001

35 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Tamanhos diferentes Uma fila de acesso por partição Otimiza o uso do espaço na partição Uma fila para o sistema como um todo Otimiza o uso das partições Sistemas Operacionais I - Versão Beta 3 24/04/2001

36 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Tamanhos diferentes Uma fila por partição S.O. Processos Novos Sistemas Operacionais I - Versão Beta 3 24/04/2001

37 ALOCAÇÃO DE MEMÓRIA Alocação particionada estática (partição fixa)
Tamanhos diferentes Uma fila para o sistema S.O Processos Novos Sistemas Operacionais I - Versão Beta 3 24/04/2001

38 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Partições no tamanho que o processo necessita As partições são criadas por demanda O número e o tamanho de cada partição varia no tempo Problema Espaços não alocáveis são criados Sistemas Operacionais I - Versão Beta 3 24/04/2001

39 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas Memória Real S.O.
Livre No Boot – t0 t1 t2 t3 t4 Pn - Não pode “entrar” tn Sistemas Operacionais I - Versão Beta 3 24/04/2001

40 Terminado após P5 “entrar”
ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas Memória Real S.O. P1 P2 P3 Livre P5 Livre No Boot – t0 t1 t2 t3 t4 Terminado após P5 “entrar” t5 Pn - Não pode “entrar” tn Sistemas Operacionais I - Versão Beta 3 24/04/2001

41 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas Problema Solução
A memória pode ficar cheia de buracos “pequenos” e sua soma ser “muito grande” Solução Relocação dos processos (compactação) Alto custo Solução viável em hardware Sistemas Operacionais I - Versão Beta 3 24/04/2001

42 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Estratégias para escolha das partições Algoritmos de colocação O S.O. deve fazer a escolha do bloco de memória onde o processo será alojado Sistemas Operacionais I - Versão Beta 3 24/04/2001

43 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação BEST-FIT Escolhe a partição em que o processo deixa o menor espaço sem utilização Há uma lista de áreas livres ordenada por tamanho Desvantagem Muitas pequenas áreas não contíguas aumentando o problema da fragmentação Necessidade de compactação mais freqüente Baixo desempenho (a princípio) Sistemas Operacionais I - Versão Beta 3 24/04/2001

44 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação WORST-FIT Escolhe a partição em que o processo deixa o maior espaço sem utilização Há uma lista de áreas livres ordenada reversamente por tamanho Apesar de utilizar as partições maiores, os espaços livres maiores permitem o aproveitamento da memória por um maior número de programas Sistemas Operacionais I - Versão Beta 3 24/04/2001

45 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação FIRST-FIT Escolhe o primeiro bloco livre com tamanho suficiente para carregar o processo Há uma lista de áreas livres ordenada por endereços É rápida, consumindo menos recursos do sistema Desvantagem Muitos blocos pequenos no início da memória Sistemas Operacionais I - Versão Beta 3 24/04/2001

46 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação NEXT-FIT Escolhe o primeiro bloco livre a partir da última alocação que comporte o processo Há uma lista de áreas livres ordenada por endereço Desfaz rapidamente o grande bloco livre no final da memória Compactação é necessária para reconstituir um grande bloco ao fim da memória Sistemas Operacionais I - Versão Beta 3 24/04/2001

47 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo 19MB 100MB 16MB 110MB 90MB 22MB 52MB 1MB Último bloco alocado Sistemas Operacionais I - Versão Beta 3 24/04/2001

48 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo 52MB 19MB 16MB 100MB 110MB 90MB 22MB 1MB Alocação de 8MB FF BF NF WF 11MB 8MB 14MB 44MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

49 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo Suponha a alocação de memória abaixo em uma arquitetura SMP, 8 processadores, com todos os processos RUNNING. 52MB 19MB 16MB 100MB 110MB 90MB 22MB 1MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

50 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo Suponha pois, a submissão de processos com áreas 16MB, 52MB, 19MB e 22MB, nessa ordem Qual será o algoritmo de colocação de melhor desempenho? 52MB 19MB 16MB 100MB 110MB 90MB 22MB 1MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

51 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo Usando o First-Fit 19MB 100MB 16MB 110MB 90MB 22MB 1MB 52MB 16MB 52MB 19MB 22MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

52 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo Usando o Best-Fit 19MB 100MB 16MB 110MB 90MB 22MB 1MB 52MB 16MB 52MB 19MB 22MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

53 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo Usando o Next-Fit 19MB 100MB 16MB 110MB 90MB 22MB 1MB 52MB 16MB 52MB 19MB 22MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

54 ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas
Algoritmos de colocação Exemplo Usando o Worst-Fit 19MB 100MB 16MB 110MB 90MB 22MB 1MB 52MB 16MB 19MB 52MB 22MB Sistemas Operacionais I - Versão Beta 3 24/04/2001

55 PAGINAÇÃO Particiona a memória Processo
Em blocos pequenos de igual tamanho Frames ou molduras Processo É dividido em blocos pequenos de tamanho igual aos blocos de memória Páginas Sistemas Operacionais I - Versão Beta 3 24/04/2001

56 PAGINAÇÃO O S.O. mantém uma tabela de páginas para cada processo
Endereço dos frames com cada página do processo O endereço de memória é a página mais um deslocamento dentro desta Um bit para indicar a presença ou não na memória Endereço virtual Entrada da tabela de páginas Página # Offset P M Frame # Bits de controle Sistemas Operacionais I - Versão Beta 3 24/04/2001

57 Sistemas Operacionais I - Versao Beta 3
24/04/2001 PAGINAÇÃO O S.O. mantém uma tabela de páginas para cada processo Bit de modificação Indica se a página foi alterada ou não Se a página não foi alterada, não precisa ser gravada quando for swapped-out Endereço virtual Entrada da tabela de páginas Página # Offset P M Frame # Bits de controle Sistemas Operacionais I - Versão Beta 3 24/04/2001

58 PAGINAÇÃO Aspectos Espaço de endereçamento lógico pode ser não contíguo A execução do processo de tamanho N depende da existência de N quadros livres Os frames tem tamanho potência de dois Mantém conhecimento dos quadros livres Uso de tabela de página para traduzir endereço lógico para físico Fragmentação interna (na última página) Sistemas Operacionais I - Versão Beta 3 24/04/2001

59 PAGINAÇÃO Exemplo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 B.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C.3 D.0 D.1 D.2 D.3 D.4 Sistemas Operacionais I - Versão Beta 3 24/04/2001

60 PAGINAÇÃO Exemplo Tabelas de páginas 1 2 3 Processo A Processo B --- 4
1 2 3 Processo A Processo B --- 4 Processo C 7 8 9 10 5 6 11 12 Processo D Frames Livres 13 14 Sistemas Operacionais I - Versão Beta 3 24/04/2001

61 PAGINAÇÃO Tradução de endereços Gerado pela CPU Page number
Utilizado com índice na tabela de páginas Contém o endereço base (frame) Page offset Combinado com o endereço base forma o endereço físico Sistemas Operacionais I - Versão Beta 3 24/04/2001

62 PAGINAÇÃO Tradução de endereços End. Lógico End. Físico Memória Física
Tabela de Páginas Sistemas Operacionais I - Versão Beta 3 24/04/2001

63 PAGINAÇÃO Exemplo 1 2 3 4 5 6 7 Pág. 0 Pág. 2 Pág. 1 Pág. 3 Página 0
1 2 3 4 5 6 7 Pág. 0 Pág. 2 Pág. 1 Pág. 3 Página 0 Página 1 1 Página 2 4 Página 3 3 7 Memória Lógica Tabela de Página Memória Física Sistemas Operacionais I - Versão Beta 3 24/04/2001

64 PAGINAÇÃO Página compartilhadas(Shared Pages)
Código compartilhado (Shared code) Uma cópia read-only (reentrante) de código compartilhado entre processos Editores de textos, compiladores, Janelas O código compartilhado precisa estar na mesma locação de memória no espaço de endereçamento de cada processo Sistemas Operacionais I - Versão Beta 3 24/04/2001

65 PAGINAÇÃO Página compartilhadas(Shared Pages) Código e dados privados
Cada processo “pega” uma cópia de código e dados As páginas de código privado podem estar em qualquer locação do espaço de endereçamento dos processos Sistemas Operacionais I - Versão Beta 3 24/04/2001

66 PAGINAÇÃO Página compartilhadas(Shared Pages) Tabela de páginas P1 C1
3 C2 4 C3 C1 6 Dp1 C2 1 P1 Tabela de páginas P1 Dp2 C1 C3 3 C2 4 C3 Memória Real 6 Dp2 5 P1 Sistemas Operacionais I - Versão Beta 3 24/04/2001

67 SEGMENTAÇÃO Esquema de gerência de memória que suporta a visão da memória pelo usuário Um programa é a coleção de segmentos Principal procedimentos e funções variáveis locais e variáveis globais Blocos comuns Pilha Tabela de símbolos Matrizes Sistemas Operacionais I - Versão Beta 3 24/04/2001

68 Sistemas Operacionais I - Versao Beta 3
24/04/2001 SEGMENTAÇÃO Os segmentos dos programas podem não ter o mesmo tamanho Mas segmentos tem um tamanho máximo Simplifica o crescimento das estruturas de dados Sistemas Operacionais I - Versão Beta 3 24/04/2001

69 SEGMENTAÇÃO Arquitetura Endereço lógico consiste de
<segmento, deslocamento> Endereço virtual Registro da tabela de segmentos Segmento # Offset P M Bits de controle Tamanh Segmento Sistemas Operacionais I - Versão Beta 3 24/04/2001

70 SEGMENTAÇÃO Arquitetura Endereço lógico consiste de
<segmento, deslocamento> Tabela de Segmentos (Segment table) Mapeia o endereço base Contém o endereço físico onde começa o segmento limit Especifica o tamanho do segmento Sistemas Operacionais I - Versão Beta 3 24/04/2001

71 SEGMENTAÇÃO Arquitetura Dois registradores
Segment-table base register (STBR) Aponta para a tabela de segmentos Segment-table length register (STLR) Indica o número de segmentos do processo Sistemas Operacionais I - Versão Beta 3 24/04/2001

72 SEGMENTAÇÃO Arquitetura Relocação Compartilhamento Dinâmico
Por tabela de segmento Compartilhamento Segmento compartilhados Mesmo segmento Sistemas Operacionais I - Versão Beta 3 24/04/2001

73 SEGMENTAÇÃO Arquitetura Alocação First-Fit Best-Fit
Fragmentação externa Sistemas Operacionais I - Versão Beta 3 24/04/2001

74 SEGMENTAÇÃO Arquitetura Proteção A cada entrada na tabela de segmento
Bit de validação = 0  segmento ilegal privilégios read/write/execute Bits de proteção associados ao segmento Compartilhamento de código ocorre em nível de segmento Sistemas Operacionais I - Versão Beta 3 24/04/2001

75 SEGMENTAÇÃO Translação de endereços
Endereço virtual End. Real Seg # Offset = d + Base + d Registrador Seg Table Ptr Tabela de Segmentos d Segmento S# + Tam. Base Processo Sementação Memória principal Sistemas Operacionais I - Versão Beta 3 24/04/2001


Carregar ppt "Gerência de Memória Sistemas Operacionais I"

Apresentações semelhantes


Anúncios Google