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

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

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

Apresentações semelhantes


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

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

2 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

3 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

4 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

5 24/04/2001Sistemas Operacionais I - Versão Beta 37-5 GERÊNCIA DE MEMÓRIA 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?

6 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

7 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

8 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

9 24/04/2001Sistemas Operacionais I - Versão Beta 37-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

10 24/04/2001Sistemas Operacionais I - Versão Beta 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çalhoText Data (já incializados) Dicionário de Relocação

11 24/04/2001Sistemas Operacionais I - Versão Beta 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

12 24/04/2001Sistemas Operacionais I - Versão Beta 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.

13 24/04/2001Sistemas Operacionais I - Versão Beta 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

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

15 24/04/2001Sistemas Operacionais I - Versão Beta 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

16 24/04/2001Sistemas Operacionais I - Versão Beta 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

17 24/04/2001Sistemas Operacionais I - Versão Beta ENDEREÇAMENTO Lógico/Virtual – 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

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

19 24/04/2001Sistemas Operacionais I - Versão Beta 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

20 24/04/2001Sistemas Operacionais I - Versão Beta 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

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

22 24/04/2001Sistemas Operacionais I - Versão Beta 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

23 24/04/2001Sistemas Operacionais I - Versão Beta 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

24 24/04/2001Sistemas Operacionais I - Versão Beta 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

25 24/04/2001Sistemas Operacionais I - Versão Beta SWAPPING – 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.

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

27 24/04/2001Sistemas Operacionais I - Versão Beta 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 Processo UsuárioSistema Operacional Memória Real

28 24/04/2001Sistemas Operacionais I - Versão Beta 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

29 24/04/2001Sistemas Operacionais I - Versão Beta 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

30 24/04/2001Sistemas Operacionais I - Versão Beta 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)

31 24/04/2001Sistemas Operacionais I - Versão Beta 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

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

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

34 24/04/2001Sistemas Operacionais I - Versão Beta 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 P1P1 P2P2 Partição 1 Partição 2Partição 3 S.O. P3P3

35 24/04/2001Sistemas Operacionais I - Versão Beta 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

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

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

38 24/04/2001Sistemas Operacionais I - Versão Beta 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

39 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas ALOCAÇÃO DE MEMÓRIA S.O.P1P1 P2P2 P3P3 P4P4 Livre No Boot – t 0 t1t1 t2t2 t3t3 t4t4 tntn P n - Não pode entrar Memória Real

40 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas ALOCAÇÃO DE MEMÓRIA S.O.P1P1 P2P2 P3P3 P5P5 Livre No Boot – t 0 t1t1 t2t2 t3t3 t5t5 tntn P n - Não pode entrar Livre t4t4 Terminado após P 5 entrar Memória Real

41 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas – Problema 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 ALOCAÇÃO DE MEMÓRIA

42 24/04/2001Sistemas Operacionais I - Versão Beta 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

43 24/04/2001Sistemas Operacionais I - Versão Beta 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)

44 24/04/2001Sistemas Operacionais I - Versão Beta 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 ALOCAÇÃO DE MEMÓRIA

45 24/04/2001Sistemas Operacionais I - Versão Beta 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

46 24/04/2001Sistemas Operacionais I - Versão Beta 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

47 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas – Algoritmos de colocação Exemplo ALOCAÇÃO DE MEMÓRIA 19MB100MB16MB110MB90MB22MB52MB1MB Último bloco alocado

48 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas – Algoritmos de colocação Exemplo ALOCAÇÃO DE MEMÓRIA 52MB19MB16MB100MB110MB90MB22MB1MB Alocação de 8MB FF BF NF WF 11MB 8MB14MB44MB

49 24/04/2001Sistemas Operacionais I - Versão Beta 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. ALOCAÇÃO DE MEMÓRIA 52MB19MB16MB100MB110MB90MB22MB1MB

50 24/04/2001Sistemas Operacionais I - Versão Beta 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? ALOCAÇÃO DE MEMÓRIA 52MB19MB16MB100MB110MB90MB22MB1MB

51 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas – Algoritmos de colocação Exemplo – Usando o First-Fit ALOCAÇÃO DE MEMÓRIA 52MB19MB16MB100MB110MB90MB22MB1MB 16MB19MB52MB22MB

52 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas – Algoritmos de colocação Exemplo – Usando o Best-Fit ALOCAÇÃO DE MEMÓRIA 52MB19MB16MB100MB110MB90MB22MB1MB 16MB19MB52MB22MB

53 24/04/2001Sistemas Operacionais I - Versão Beta Alocação com partições dinâmicas – Algoritmos de colocação Exemplo – Usando o Next-Fit ALOCAÇÃO DE MEMÓRIA 52MB19MB16MB100MB110MB90MB22MB1MB 16MB19MB52MB22MB

54 24/04/2001Sistemas Operacionais I - Versão Beta ALOCAÇÃO DE MEMÓRIA Alocação com partições dinâmicas – Algoritmos de colocação Exemplo – Usando o Worst-Fit 52MB19MB16MB100MB110MB90MB22MB1MB 16MB19MB52MB22MB

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

56 24/04/2001Sistemas Operacionais I - Versão Beta 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 PM Frame # Bits de controle

57 24/04/2001Sistemas Operacionais I - Versão Beta 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 PM Frame # Bits de controle

58 24/04/2001Sistemas Operacionais I - Versão Beta 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)

59 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Exemplo A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C A.0 A.1 A.2 A.3 C.0 C.1 C.2 C A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 D.0 D.1 D.2 D.3 D.4

60 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Exemplo – Tabelas de páginas Processo A Processo B Processo C Processo D Frames Livres 13 14

61 24/04/2001Sistemas Operacionais I - Versão Beta 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

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

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

64 24/04/2001Sistemas Operacionais I - Versão Beta 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

65 24/04/2001Sistemas Operacionais I - Versão Beta 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

66 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Página compartilhadas(Shared Pages) C1C1 C2C2 C3C3 D p1 P1P C1C1 C2C2 C3C3 D p2 P1P D p1 C1C1 C2C2 D p2 C3C3 Tabela de páginas P 1 Memória Real

67 24/04/2001Sistemas Operacionais I - Versão Beta 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

68 24/04/2001Sistemas Operacionais I - Versão Beta 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

69 24/04/2001Sistemas Operacionais I - Versão Beta SEGMENTAÇÃO Arquitetura – Endereço lógico consiste de Endereço virtual Registro da tabela de segmentos Segmento #Offset PM Bits de controle TamanhSegmento

70 24/04/2001Sistemas Operacionais I - Versão Beta SEGMENTAÇÃO Arquitetura – Endereço lógico consiste de – 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

71 24/04/2001Sistemas Operacionais I - Versão Beta 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

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

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

74 24/04/2001Sistemas Operacionais I - Versão Beta 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

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


Carregar ppt "Gerência de Memória Sistemas Operacionais I Módulo 8."

Apresentações semelhantes


Anúncios Google