1 / 75

Gerência de Memória Sistemas Operacionais I

Gerência de Memória Sistemas Operacionais I. Módulo 8. 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.

Download Presentation

Gerência de Memória Sistemas Operacionais I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gerência de MemóriaSistemas 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

  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

  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

  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? Sistemas Operacionais I - Versão Beta 3

  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

  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

  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

  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

  10. Cabeçalho Text Data(já incializados) Dicionário de Relocação 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: Sistemas Operacionais I - Versão Beta 3

  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

  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

  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

  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

  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

  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

  17. 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 Sistemas Operacionais I - Versão Beta 3

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

  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

  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

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

  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

  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. 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

  25. 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. Sistemas Operacionais I - Versão Beta 3

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

  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

  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

  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

  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

  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

  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

  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

  34. Partição 2 Partição 3 Partição 1 P1 P2 P3 S.O. Fragmento 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 Sistemas Operacionais I - Versão Beta 3

  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

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

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

  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

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

  40. 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

  41. ALOCAÇÃO DE MEMÓRIA • 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 Sistemas Operacionais I - Versão Beta 3

  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

  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

  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

  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

  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

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

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

  49. 19MB 100MB 16MB 110MB 90MB 22MB 1MB 52MB 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. Sistemas Operacionais I - Versão Beta 3

  50. 19MB 100MB 16MB 110MB 90MB 22MB 1MB 52MB 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? Sistemas Operacionais I - Versão Beta 3

More Related