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

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

Post on 17-Apr-2015

103 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li> Slide 1 </li> <li> Gerncia de Memria Sistemas Operacionais I Mdulo 8 </li> <li> Slide 2 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-2 GERNCIA DE MEMRIA Premissa A memria real o recurso de armazenamento de acesso direto Processos devem ser carregados para a memria real No todo Em parte O S.O. deve permanecer na memria real e ocupar o menor espao possvel </li> <li> Slide 3 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-3 GERNCIA DE MEMRIA Premissa Endereamento de instrues e dados podem ser constitudo de trs formas Tempo de compilao (Compile Time) Se a(s) locao(es) de memria so conhecidas, ento o cdigo pode possuir endereamento absoluto necessrios recompilar o programa se a(s) locao(es) forem alteradas </li> <li> Slide 4 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-4 GERNCIA DE MEMRIA Premissa Endereamento de instrues e dados podem ser constitudo de trs formas Tempo de carga (Load Time) Se a(s) locao(es) de memria no so conhecidas, necessrio gerar cdigo relocvel Tempo de execuo (Execution Time) Endereamento constitudo dinamicamente, durante a execuo, se o processo for movido de uma rea de memria para outra necessrio suporte de hardware para mapear os endereos </li> <li> Slide 5 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-5 GERNCIA DE MEMRIA Problema necessrio otimizar o uso da rea de memria real Soluo-Problema Subdividir a memria em unidades de alocao De que forma? Quais os requisitos para a gerncia? </li> <li> Slide 6 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-6 GERNCIA DE MEMRIA Requisitos O S.O. precisa: Alocar espaos na memria para programas De forma explcita ou implcita De-alocar espaos quando necessrio Efetuar a manuteno das tabelas Ex: mapear memria virtual na memria fsica Decidir quanto de memria alocar a cada processo e quando um processo ser removido da memria </li> <li> Slide 7 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-7 GERNCIA DE MEMRIA Requisitos Relocao Definio: ajuste no programa executvel para que execute em um conjunto pr estabelecido de endereos de memria. O processo no tem locao de memria pr- fixada O processo pode ser retirado (swapped out) da memria e retornar em qualquer outra locao </li> <li> Slide 8 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-8 GERNCIA DE MEMRIA Requisitos Relocao Necessidade O endereamento no pode ser absoluto As referncias precisam ser transformadas em endereos reais </li> <li> Slide 9 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-9 GERNCIA DE MEMRIA Requisitos Relocao Formas bsicas de relocao Em tempo de execuo (Hardware) Em tempo de compilao No boot do sistema esse mtodo ainda utilizado </li> <li> Slide 10 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-10 GERNCIA DE MEMRIA Requisitos Relocao Formas bsicas de relocao Em tempo de carga, pelo sistema operacional. lento. O programa no pode mudar de rea Estrutura do programa: CabealhoText Data (j incializados) Dicionrio de Relocao </li> <li> Slide 11 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-11 GERNCIA DE MEMRIA Requisitos Proteo Processos no podem acessar reas de outros processos sem prvia autorizao Problema Complexidade da verificao dos acessos Relocao e endereos dinmicos Acessos devem ser verificados a tempo de execuo pelo hardware </li> <li> Slide 12 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-12 GERNCIA DE MEMRIA Requisitos Compartilhamento Permitir que vrios processos faam acesso mesma rea de memria Compartilhar cdigo executvel Compartilhar rea de dados Controlar acesso a reas de memria sem comprometer a proteo do S.O. </li> <li> Slide 13 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-13 GERNCIA DE MEMRIA Requisitos Estrutura lgica Organizao da memria em lista linear de endereos Programas so organizados em mdulos Vantagens da implementao integrada Compilao independente dos mdulos Proteo apropriada dos mdulos Compartilhamento de mdulos entre os processos </li> <li> Slide 14 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-14 GERNCIA DE MEMRIA Requisitos Estrutura fsica Problema A memria real pode ser insuficiente para um processo </li> <li> Slide 15 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-15 GERNCIA DE MEMRIA Requisitos Estrutura fsica Soluo Overlaying Dividir em mdulos que no so carregados simultaneamente Uma rotina responsvel pela carga dos mdulos Soluo complexa O programador pode no ter conhecimento da memria disponvel </li> <li> Slide 16 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-16 RELOCAO Quando um processo carregado para a memria as referncias a memria real (endereo absoluto) precisam ser ajustadas Motivo Processos podem ocupar diferentes reas de memria Parties diferentes Causas SWAPING Compactao </li> <li> Slide 17 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-17 ENDEREAMENTO Lgico/Virtual Referncia a uma posio de memria independe da localizao REAL na memria Gerado pela CPU Tambm conhecido como endereo virtual Traduo endereo-lgico endereo-fsico Fsico Endereo REAL na memria </li> <li> Slide 18 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-18 ENDEREAMENTO Relativo O endereo expresso em relao a algum ponto base Base+Deslocamento </li> <li> Slide 19 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-19 ENDEREAMENTO Endereamento lgico e fsico so idnticos no endereamento constitudo em tempo de compilao e em tempo de carga. So diferentes no caso do endereamento constitudo em tempo de execuo </li> <li> Slide 20 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-20 ENDEREAMENTO Memory-Management Unit ( MMU ) Dispositivo de Hardware que mapeia endereos virtuais em fsicos No esquema MMU, o contedo no registrados de relocao adicionado a qualquer endereo gerado pelo processo O processo utiliza endereo lgico. NUNCA usa endereo fsico </li> <li> Slide 21 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-21 ENDEREAMENTO Suporte de Hardware Registrador de Base Somador S.O. Int Endereo relativo End. Absoluto Comparador PCB TEXT DS SS Registrador de Limite </li> <li> Slide 22 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-22 ENDEREAMENTO Registradores utilizados Registrador de base (Base register) Endereo inicial do processo Registrador de limite (Bounds register) Endereo final do processo Estes valores so ajustados quando o processo carregado ou swapped in </li> <li> Slide 23 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-23 ENDEREAMENTO Registradores utilizados O valor no registrador de base somado a um endereo relativo para produzir um endereo absoluto O resultado comparado com o registrador de limite Se no estiver contido no limite permitido, uma interrupo gerada </li> <li> Slide 24 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-24 SWAPPING Um processo pode ser retirado temporariamente da memria e retornar aps algum tempo Backing store rea em disco, veloz, grande o suficiente para acomodar as cpias de imagens da memria (de todos ou parte dos usurios) necessrio prover acesso direto a essas imagens </li> <li> Slide 25 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-25 SWAPPING Roll out, roll in Variante da tcnica swapping utilizada por algoritmos de escalonamento priority-based Processos com baixa prioridade so swapped-out para dar lugar a processos com alta prioridade O tempo dispensado gasto com a transferncia de dados proporcional a quantidade de memria a ser swapped. </li> <li> Slide 26 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-26 SWAPPING S.O. Espao Usurio P2P2 P1P1 M.R. Backing Store </li> <li> Slide 27 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-27 ALOCAO DE MEMRIA Alocao contgua simples Comum em S.O. monoprogramveis A memria dividida em duas partes S.O. Processo usurio Processo UsurioSistema Operacional Memria Real </li> <li> Slide 28 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-28 ALOCAO DE MEMRIA Alocao contgua simples O programador responsvel por evitar violar a regio onde reside o S.O. Algumas implementaes de S.O. delimitam o espao mximo de endereamento do processo usurio Uso de overlay </li> <li> Slide 29 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-29 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Motivao: multiprogramao Diviso da memria em pedaos Tamanhos Iguais diferentes Parmetro de sistema Quando gerado Quando inicializado </li> <li> Slide 30 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-30 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Cada partio comporta processos com requisitos de memria menor ou igual a partio Uso ineficiente da memria, causando desperdcio de memria na partio (Fragmentao Interna) Se todas as parties estiverem alocadas o S.O. pode utilizar o swapping para carregar mais processos Se o processo no couber na partio pode-se utilizar a tcnica de overlay (ovl) </li> <li> Slide 31 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-31 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Endereamento absoluto Processo s pode ser carregado na mesma regio de memria Endereamento virtual Processo pode ser carregado em qualquer regio de memria Registrador de relocao </li> <li> Slide 32 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-32 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Tamanhos iguais Fragmento PnPn P1P1 P2P2 Partio 1Partio 2Partio 3 S.O. = Fragmento + Partio Processo no pode ser executado Memria Real </li> <li> Slide 33 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-33 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Tamanhos iguais Fragmento P n (Principal) P n (OVL) Carga do Ovl Carga do Principal P1P1 P2P2 Partio 1Partio 2Partio 3 S.O. Memria Real </li> <li> Slide 34 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-34 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Tamanhos diferentes Processo alocado na menor partio que o comporte Minimiza o problema de fragmentao interna mas no o elimina Fragmento P1P1 P2P2 Partio 1 Partio 2Partio 3 S.O. P3P3 </li> <li> Slide 35 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-35 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Tamanhos diferentes Uma fila de acesso por partio Otimiza o uso do espao na partio Uma fila para o sistema como um todo Otimiza o uso das parties </li> <li> Slide 36 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-36 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Tamanhos diferentes Uma fila por partio Processos Novos S.O. </li> <li> Slide 37 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-37 ALOCAO DE MEMRIA Alocao particionada esttica (partio fixa) Tamanhos diferentes Uma fila para o sistema S.O Processos Novos </li> <li> Slide 38 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-38 ALOCAO DE MEMRIA Alocao com parties dinmicas Parties no tamanho que o processo necessita As parties so criadas por demanda O nmero e o tamanho de cada partio varia no tempo Problema Espaos no alocveis so criados </li> <li> Slide 39 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-39 Alocao com parties dinmicas ALOCAO DE MEMRIA S.O.P1P1 P2P2 P3P3 P4P4 Livre No Boot t 0 t1t1 t2t2 t3t3 t4t4 tntn P n - No pode entrar Memria Real </li> <li> Slide 40 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-40 Alocao com parties dinmicas ALOCAO DE MEMRIA S.O.P1P1 P2P2 P3P3 P5P5 Livre No Boot t 0 t1t1 t2t2 t3t3 t5t5 tntn P n - No pode entrar Livre t4t4 Terminado aps P 5 entrar Memria Real </li> <li> Slide 41 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-41 Alocao com parties dinmicas Problema A memria pode ficar cheia de buracos pequenos e sua soma ser muito grande Soluo Relocao dos processos (compactao) Alto custo Soluo vivel em hardware ALOCAO DE MEMRIA </li> <li> Slide 42 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-42 ALOCAO DE MEMRIA Alocao com parties dinmicas Estratgias para escolha das parties Algoritmos de colocao O S.O. deve fazer a escolha do bloco de memria onde o processo ser alojado </li> <li> Slide 43 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-43 ALOCAO DE MEMRIA Alocao com parties dinmicas Algoritmos de colocao BEST-FIT Escolhe a partio em que o processo deixa o menor espao sem utilizao H uma lista de reas livres ordenada por tamanho Desvantagem Muitas pequenas reas no contguas aumentando o problema da fragmentao Necessidade de compactao mais freqente Baixo desempenho (a princpio) </li> <li> Slide 44 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-44 Alocao com parties dinmicas Algoritmos de colocao WORST-FIT Escolhe a partio em que o processo deixa o maior espao sem utilizao H uma lista de reas livres ordenada reversamente por tamanho Apesar de utilizar as parties maiores, os espaos livres maiores permitem o aproveitamento da memria por um maior nmero de programas ALOCAO DE MEMRIA </li> <li> Slide 45 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-45 ALOCAO DE MEMRIA Alocao com parties dinmicas Algoritmos de colocao FIRST-FIT Escolhe o primeiro bloco livre com tamanho suficiente para carregar o processo H uma lista de reas livres ordenada por endereos rpida, consumindo menos recursos do sistema Desvantagem Muitos blocos pequenos no incio da memria </li> <li> Slide 46 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-46 ALOCAO DE MEMRIA Alocao com parties dinmicas Algoritmos de colocao NEXT-FIT Escolhe o primeiro bloco livre a partir da ltima alocao que comporte o processo H uma lista de reas livres ordenada por endereo Desfaz rapidamente o grande bloco livre no final da memria Compactao necessria para reconstituir um grande bloco ao fim da memria </li> <li> Slide 47 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-47 Alocao com parties dinmicas Algoritmos de colocao Exemplo ALOCAO DE MEMRIA 19MB100MB16MB110MB90MB22MB52MB1MB ltimo bloco alocado </li> <li> Slide 48 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-48 Alocao com parties dinmicas Algoritmos de colocao Exemplo ALOCAO DE MEMRIA 52MB19MB16MB100MB110MB90MB22MB1MB Alocao de 8MB FF BF NF WF 11MB 8MB14MB44MB </li> <li> Slide 49 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-49 Alocao com parties dinmicas Algoritmos de colocao Exemplo Suponha a alocao de memria abaixo em uma arquitetura SMP, 8 processadores, com todos os processos RUNNING. ALOCAO DE MEMRIA 52MB19MB16MB100MB110MB90MB22MB1MB </li> <li> Slide 50 </li> <li> 24/04/2001Sistemas Operacionais I - Verso Beta 37-50 Alocao com parties dinmicas Algoritmos de colocao Exemplo Suponha pois, a submisso de processos com reas 16MB, 52MB, 19MB e 22MB, nessa ordem Qual ser o algoritm...</li></ul>

Recommended

View more >