Gerncia de Memria 2 Gerncia de Memria Eduardo Nicola F. Zagari Gerncia Gerncia de de Memria Memria n Introduo n Atribuio de Endereos, Carregamento Dinmico, Ligao Dinmica n Espao de Endereamento Fsico versus Lgico n Alocao Contgua Simples n Overlay n Alocao Particionada n Fragmentao Externa e Interna n Gerncia de Memria com Mapeamento de Bits n Gerncia de Memria com Listas Ligadas n Algoritmos de Alocao de Parties n Swapping 2 3 Gerncia de Memria Eduardo Nicola F. Zagari Introduo Introduo n Memria um dos mais importantes recursos de um computador l necessidade de ser gerenciada n Programas devem ser colocados dentro de um processo e ento carregados em memria para serem executados. n Input queue coleo de processos no disco que esto aguardando carregamento em memria para executarem o programa. n Funes de um Gerente de Memria l controlar quais partes da memria esto em uso l controlar quais partes esto livres l alocar memria a processos quando estes precisarem l desalocar quando eles no mais necessitarem l gerenciar a troca (swapping ) dos processos entre memria principal e disco, quando a memria no grande o suficiente para guardar todos os processos 4 Gerncia de Memria Eduardo Nicola F. Zagari Introduo Introduo n A CPU busca instrues da memria de acordo com o valor do contador de instrues (PC) do programa em execuo. Essas instrues podem: l buscar novos valores de endereos especficos da memria l armazenar novos valores em posies especficas da memria n Programas de usurio passampor vrios passos antes de comearema ser executados. Memria Principal UC Registrador PC Instruo Parmetros Resultado Registrador UAL 3 5 Gerncia de Memria Eduardo Nicola F. Zagari Atribuio de Endereos Atribuio de Endereos n A maioria dos sistemas permite que os processos de usurios sejam colocados em qualquer parte da memria l assim, embora o espao de endereamento comece em 0000, o endereo inicial de um processo no precisa ser este. n A ligao de endereos de instrues e de dados para os endereos de memria podem acontecer em3 estgios diferentes: l Em tempo de compilao 4cdigo absoluto: se o programa vai ser carregado no endereo E, o cdigo gerado pelo compilador inicia-se neste endereo (se for alterado, deve ser recompilado). Ex.: .COM do DOS Programa Fonte Programa Fonte compilador ou montador compilador ou montador Cdigo Objeto Cdigo Objeto tempo de compilao 6 Gerncia de Memria Eduardo Nicola F. Zagari Atribuio de Endereos Atribuio de Endereos n Em tempo de carga l cdigo relocvel: quando no se conhece em tempo de compilao a posio em que o programa ser armazenado. Ex.: 4Compilador: 14 bytes do incio 4Carregador: 74000 + 14 Cdigo Objeto Cdigo Objeto ligador ligador Cdigo Relocvel Cdigo Relocvel tempo de carga Cd Obj de outros mdulos Cd Obj de outros mdulos carregador carregador Biblioteca de sistema Biblioteca de sistema 4 7 Gerncia de Memria Eduardo Nicola F. Zagari Atribuio de Endereos Atribuio de Endereos n Em tempo de execuo l se o processo pode ser movido durante sua execuo, a determinao do endereo deve ser atrasada para o tempo de execuo l h a necessidade de suporte de hardware para o mapeamento de endereos (p.ex.: registradores base e limite) carregador carregador tempo de execuo Biblioteca de sistema Biblioteca de sistema Cdigo binrio executvel Cdigo binrio executvel Biblioteca de sistema carregada dinamica- mente Biblioteca de sistema carregada dinamica- mente 8 Gerncia de Memria Eduardo Nicola F. Zagari Espao de Espao de Endereamento Fsico Endereamento Fsico versus versus Lgico Lgico n O conceito de um espao de endereamento lgico que est associado a um espao de endereamento fsico separado central ao adequado gerenciamento da memria. l Endereo Lgico gerado pela CPU; tambm conhecido como endereo virtual. l Endereo Fsico endereo visto pela unidade de memria. n Endereos Lgico e Fsico so os mesmo nos esquemas de atribuio de endereos emtempo de compilao e emtempo de carga. n Endereos Lgico e Fsico diferemquando se usa esquema de atribuio de endereos emtempo de execuo. 5 9 Gerncia de Memria Eduardo Nicola F. Zagari Unidade Unidade de de Gerenciamento Gerenciamento de de Memria Memria ( (MMU MMU) ) n Dispositivo de hardware que mapeia endereos virtuais em endereos fsicos. n Atravs da MMU, o valor do registrador de relocao adicionado a todo endereo gerado pelo processo do usurio no instante emqueee enviado memria. n O programa do usurio lida com endereos lgicos; ele nunca v o endereo fsico real. 10 Gerncia de Memria Eduardo Nicola F. Zagari Relocao Relocao Dinmica Dinmica usando um registrador de usando um registrador de relocao relocao CPU Memria Principal 14000 + Endereo Lgico MMU Unidade de Gerenciamento de Memria Endereo Fsico #346 #14346 Registrador Base 6 11 Gerncia de Memria Eduardo Nicola F. Zagari Carregamento Carregamento Dinmico Dinmico (usurio) (usurio) n Rotina no carregada at que ela seja chamada n Melhor utilizao do espao de memria l Rotinas que no so usadas nunca so carregadas. n til quando grandes quantidades de cdigo so necessrias para manipular casos pouco freqentes. n Nenhumsuporte especial do S.O. requerido l Implementado atravs do projeto do programa. 12 Gerncia de Memria Eduardo Nicola F. Zagari Ligao Dinmica ( Ligao Dinmica (sist sist. operacional) . operacional) n A ligao (linking) adiada at o tempo de execuo. n Stub: um pequeno pedao de cdigo usado para a localizao da rotina dinmica, residente emmemria, apropriada. n O stub substitui a si prprio com o endereo da rotina e a executa. n necessrio o suporte do S.O. para verificar se a rotina est no endereo de memria dos processos. n Ligao Dinmica particularmente til para bibliotecas. 4Economia de espao 4Atualizao 4Controle de concorrncia 7 13 Gerncia de Memria Eduardo Nicola F. Zagari Organizao e Gerncia da Memria Organizao e Gerncia da Memria n Toda vez que desejarmos executar um programa (residente em memria secundria), deveremos, de alguma forma, carreg-lo para a memria principal, para que o processador possa referenciar suas instrues e seus dados n Nos sistemas monoprogramados a gerncia da memria no muito complexa, mas nos sistemas multiprogramados ela se torna crtica n A seguir apresentaremos os principais esquemas de organizao e gerncia da memria principal 14 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Contgua Simples Alocao Contgua Simples n Implementada nos primeiros SOs e ainda est presente em alguns sistemas monoprogramados n Esquema mais simples para gerncia de memria n A memria principal dividida em duas partes: l uma para o Sistema Operacional l outra para o(s) programa(s) do(s) usurio(s) n SO pode ocupar tanto a parte baixa quanto a parte mais alta da memria, dependendo da localizao do vetor de interrupes 8 15 Gerncia de Memria Eduardo Nicola F. Zagari Sistema Operacional em RAM (cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples n No IBM-PC utilizado o terceiro modelo: nos 8KB mais altos dos 1 MB de endereamento existe uma ROM com um programa chamado BIOS (Basic Input Output System), correspondente a todos os drivers Memria Principal rea para o processo do usurio 0x00 0xFF Sistema Operacional em ROM Memria Principal rea para o processo do usurio SO em RAM Memria Principal rea para o processo do usurio Drivers de dispo- sitivos em ROM 16 Gerncia de Memria Eduardo Nicola F. Zagari (cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples n Usurio tem controle sobre toda a memria principal, podendo acessar at a rea do SO (caso do DOS) n PROTEO: Pode-se implementar um esquema de proteo usando um registrador que delimite as reas do SO e usurio Memria Principal Sistema Operacional rea para o processo do usurio Registrador 9 17 Gerncia de Memria Eduardo Nicola F. Zagari (cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples n Sempre que um programa do usurio faz referncia a um endereo de memria, o sistema verifica se o endereo est nos seus limites (registrador base e registrador limite). Caso no esteja, o programa de usurio pode ser cancelado e ser gerada uma mensagem de erro CPU Memria Principal + Endereo Lgico MMU Endereo Fsico Registrador Limite < interrupo de software; erro de endereamento Registrador Base 18 Gerncia de Memria Eduardo Nicola F. Zagari (cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples n Problemas: no permite a utilizao eficiente do processador e nem da memria principal, alm de limitar o tamanho do programa do usurio n Em SOs que suportam o conceito de MULTIPROGRAMAO, preciso que existam outras formas de organizao da memria principal, a fim de suportar vrios processos na memria simultaneamente rea Livre Memria Principal Sistema Operacional Processo do Usurio 10 19 Gerncia de Memria Eduardo Nicola F. Zagari Overlays Overlays n Sobreposio (Overlay) (usurio) l O que fazer quando se tem um programa que ocupa mais memria do que a disponvel? l Verifica-se se o programa tem sees que no necessitem permanecer na memria durante toda a execuo 4Mantm-se na memria somente aquelas instrues e dados que so necessrios a qualquer hora. l Essas sees, uma vez executadas, podem ser substitudas por outras l A substituio ocorre pela transferncia da seo do disco para a memria na rea de overlay, cobrindo a seo anterior l O programa inicialmente carregado mais rapidamente, entretanto, a execuo ficar um pouco mais lenta, devido ao tempo extra gasto com a sobreposio 20 Gerncia de Memria Eduardo Nicola F. Zagari rea de Overlay Rotina de controle de overlay (cont.) (cont.) Overlay Overlay Parte fixa do processo Armazenamento Primrio Armazenamento Secundrio Fase inicial Fase intermediria Fase final 50K 20K 80K 50K 30K 80K 11 21 Gerncia de Memria Eduardo Nicola F. Zagari (cont.) (cont.) Overlay Overlay n O mecanismo de overlay pouco transparente, pois a definio das reas de overlay funo do programador (no do SO), atravs de comandos especficos da linguagem utilizada. n Dependendo da definio, pode ocasionar srias implicaes no desempenho das aplicaes, devido transferncia excessiva dos mdulos entre o disco e a memria 22 Gerncia de Memria Eduardo Nicola F. Zagari Multiprogramao Multiprogramao n Motivao: l tornar mais fcil programar uma aplicao, dividindo-a em dois ou mais processos l existncia de servio interativo para vrios usurios simultaneamente (tempo de resposta) l utilizao da CPU (existncia de processos I/O bound ) n Modelos de Multiprogramao l Modelos Simplista 4Se cada processo gasta 20% de seu tempo na memria usando o processador, ento 5 processos alcanam um fator de utilizao da CPU de 100% l E se os 5 processos esperam por E/S simultaneamente? 12 23 Gerncia de Memria Eduardo Nicola F. Zagari (cont.) (cont.) Multiprogramao Multiprogramao l Modelo Probabilistico 4Cada processo gasta p% de seu tempo com E/S 4n processos probabilidade de estarem aguardando E/S simultaneamente: p n 4Exemplo: 1 MB de memria, SO de 200K, processos de 200K e cada um gasta 80% do tempo com E/S 4 processos na memria FU CPU 60% Adio de 1 MB de RAM grau de 4 p/ 9 FU 87% Adio de mais 1 MB de RAM grau de multiprogramao de 9 para 14 FU 96% F.U. CPU = 1 - p n 24 Gerncia de Memria Eduardo Nicola F. Zagari 8 KB Partio 2 Alocao Particionada Esttica Alocao Particionada Esttica n Nos primeiros SOs multiprogramados a memria principal era dividida em pedaos de tamanho fixo (possivelmente distintos), chamados parties Memria Principal Sistema Operacional Partio 1 Tabela de parties Partio 3 Partio Tamanho n O tamanho das parties era estabelecido na fase de inicializao do sistema (boot), em funo dos tamanhos dos programas que iriam ser executados l alterao de tamanho de partio reinicializao 1 2 KB 2 5 KB 3 8 KB Programas a serem executados 2 KB 5 KB E D C B A 3KB 6KB 1KB 4KB 2KB 13 25 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Alocao Particionada Esttica Particionada Esttica - - Proteo Proteo n A proteo baseia-se em dois registradores, que indicam os limites inferior e superior da partio onde o programa est sendo executado n Acessos do processo usurio provocam a comparao com o registrador limite, caso haja invaso, o processo terminado com uma mensagem de erro. Partio 2 Memria Principal Sistema Operacional Partio 1 Partio 3 Endereo inicial Endereo final 26 Gerncia de Memria Eduardo Nicola F. Zagari n E as chamadas aos servios do SO ? l Isto resolvido atravs da instruo chamada ao supervisor (supervisor call ) n Modo Usurio: l Execuo das instrues disponveis aos usurios n Modo Supervisor: l Todas as instrues permitidas (no feita comparao com o registrador limite) n A passagem do modo usurio para o modo supervisor ocorre quando da solicitao de um servio Alocao Alocao Particionada Esttica Particionada Esttica - - Proteo Proteo Modo Usurio versus Modo Supervisor 14 27 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Esttica Alocao Particionada Esttica n Parties Fixas com Filas Mltiplas: l processo colocado em uma partio determinada. Se estiver ocupada, aguarda na fila; l ou, processo colocado na fila da menor partio em que caiba n Problema: parties no utilizadas Partio 2 Memria Principal Sistema Operacional Partio 1 Partio 3 Programas a serem executados 28 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Esttica Alocao Particionada Esttica n Parties Fixas com Fila nica: l fila nica para todas as parties; l processo colocado na fila da menor partio disponvel em que caiba Partio 2 Memria Principal Sistema Operacional Partio 1 Partio 3 Programas a serem executados 15 29 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Esttica Alocao Particionada Esttica n Problema: l colocao de um programa pequeno em uma partio grande l parties vazias por falta de clientes n Uma tentativa de soluo: l correr toda a fila antes de escolher o cliente l Problema: 4discrimina pequenos processos 30 Gerncia de Memria Eduardo Nicola F. Zagari Aloc Aloc. Particionada Esttica Absoluta . Particionada Esttica Absoluta n Em sistemas em que os compiladores e montadores geram apenas cdigo absoluto, os processos podem executar em apenas uma das parties, mesmo que outras estejam livres Partio 2 Memria Principal Sistema Operacional Partio 1 Partio 3 Programas a serem executados 2 KB 5 KB 8 KB E D C B A n Se os processos A e B estivessem executando e a partio 3 estivesse livre, os processos C e E no poderiam ser executados 16 31 Gerncia de Memria Eduardo Nicola F. Zagari Aloc Aloc. Particionada Esttica . Particionada Esttica Relocvel Relocvel n Com a evoluo dos compiladores, linkers e loaders, tornou-se possvel a gerao de cdigo relocvel, permitindo que os processos sejam carregados em qualquer uma das parties Processo A Memria Principal Sistema Operacional Processo C Processo B Programas a serem executados 2 KB 5 KB 8 KB E D n Se os processos A e B terminarem de executar, o processo E pode ser carregado e executado em qualquer uma das duas parties 6KB 3KB 32 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Esttica Alocao Particionada Esttica n Problema da APE: fragmentao excessiva l Fragmentao o problema que surge quando pedaos de memria ficam impedidos de serem utilizados por outros processos. Processo A Memria Principal Sistema Operacional Processo C Processo E Programas a serem executados 1 KB 3 KB 3 KB B D 6KB 4KB 17 33 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Dinmica Alocao Particionada Dinmica n Visa reduzir o problema da fragmentao e, consequentemente, aumentar o grau de compartilhamento da memria n eliminado o conceito de parties de tamanho fixo n Na APD, cada processo utiliza o espao necessrio, passando esse pedao a ser a sua partio Processo C Sistema Operacional Processo B Processo E Programas a serem executados 4 KB 1 KB 2 KB A E C B 2KB 3KB 1KB 4KB Memria Principal Sistema Operacional 11 KB Processo A 3 KB 1 KB 34 Gerncia de Memria Eduardo Nicola F. Zagari Memria Principal Sistema Operacional 0 400K 2560K Fila de processos Processo Tamanho Tempo P 1 P 2 P 3 P 4 P 5 600K 1000K 300K 700K 500K 10 5 20 8 15 Alocao Alocao Particionada Dinmica Particionada Dinmica - - Exemplo Exemplo 18 35 Gerncia de Memria Eduardo Nicola F. Zagari P 2 termina Alocao Alocao Particionada Dinmica Particionada Dinmica - - Exemplo Exemplo 0 400K 1000K so so so so so 2560K 2560K 2560K 2560K 2560K 2000K 2300K 0 400K 1000K 2000K 2300K 0 400K 1000K 2000K 2300K 0 400K 1000K 2000K 2300K 0 400K 1000K 2000K 2300K P 1 P 1 P 1 P 5 900K P 2 P 3 P 3 P 3 P 3 P 3 P 4 P 4 P 4 1700K aloca a P 4 P 1 termina 1700K 1700K aloca a P 5 36 Gerncia de Memria Eduardo Nicola F. Zagari n Neste esquema, a fragmentao comea a ocorrer quando os processos forem terminando e deixando espaos cada vez menores na memria, no permitindo o ingresso de novos processos Alocao Particionada Dinmica Alocao Particionada Dinmica Processo C Sistema Operacional Programa a ser executado 4 KB 1 KB 2 KB 6KB Memria Principal Processo A 3 KB 1 KB D n Apesar da existncia de 8 Kbytes de memria livre, o processo D no poder ser carregado 19 37 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Dinmica Alocao Particionada Dinmica n Solues para a fragmentao: l Primeira: aglutinar espaos livres adjacentes em um nico espao de tamanho maior. No exemplo anterior, caso o processo C termine, teramos: Processo C Sistema Operacional 4 KB 1 KB 2 KB Memria Principal Processo A 3 KB 1 KB Sistema Operacional 8 KB 2 KB Processo A 1 KB Memria Principal 38 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Dinmica Alocao Particionada Dinmica l Como gerenciar? (ver tpico Gerncia de Uso da Memria) 4Mapa de Bits 4Lista de parties ocupadas 4Lista de parties livres 4Ao trmino do processo, um buraco pode ser: adicionado lista de parties livres (caso a nova partio livre esteja cercada de parties ocupadas) incorporada a uma das parties da lista de parties livres (caso o buraco seja adjacente a uma partio livre) l No resolve completamente o problema (pode haver buracos pequenos...) 20 39 Gerncia de Memria Eduardo Nicola F. Zagari 2 KB Processo A Alocao Particionada Dinmica Alocao Particionada Dinmica l Segunda: fazer uma relocao de todas as regies ocupadas (movimento de todos os processos), eliminando todos os espaos entre elas e criando-se uma nica rea livre contgua. Este mtodo conhecido como compactao. Processo C Sistema Operacional 4 KB 1 KB 2 KB Memria Principal Processo A 3 KB 1 KB Sistema Operacional 8 KB 1 KB Memria Principal Processo C 40 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Particionada Dinmica Alocao Particionada Dinmica l Problemas: 4Consumo de recursos (grande quantidade de rea em disco e de tempo de processador consumido em sua implementao) 4Sistema necessita parar (pode ser desastroso para sistemas de tempo real) 21 41 Gerncia de Memria Eduardo Nicola F. Zagari Alocao Alocao Particionada Dinmica Particionada Dinmica - - Exemplo Exemplo 0 300K 1000K so 2100K 1500K 1900K P 1 P 2 P 3 P 4 500K 600K 1200K 400K 300K 200K Configurao inicial 0 300K 800K so 2100K P 1 P 2 P 3 P 4 500K 600K 1200K 900K 600K transferidos 0 300K so 2100K P 1 P 2 P 3 P 4 500K 600K 1200K 900K 400K transferidos 1000K 0 300K so 2100K P 1 P 2 P 3 P 4 500K 600K 900K 200K transferidos 1500K 1900K Modos de Compactao 42 Gerncia de Memria Eduardo Nicola F. Zagari Fragmentao Externa e Interna Fragmentao Externa e Interna n Fragmentao Externa: l existe memria suficiente para satisfazer uma requisio, mas ela no contnua 4Estatisticamente, de cada N blocos alocados, N/2 blocos so perdidos devido fragmentao (33%) n Fragmentao Interna: l memria interna a uma partio, mas que no usada. Ex.: requisio de 18462 bytes n Uma soluo para fragmentao externa compactao Memria Principal Sistema Operacional Processo 1 Processo 43 18464 bytes 22 43 Gerncia de Memria Eduardo Nicola F. Zagari Gerncia de Gerncia de Uso da Memria Uso da Memria com com Mapeamento de Bits Mapeamento de Bits n Memria subdividida em unidades de alocao n A cada unidade de alocao 1 bit no mapa l Se bit 0, esta parte da memria est livre l Se bit 1, est ocupada n Tamanho da unidade de alocao versus tamanho do mapa l Se a unidade de alocao for de 4 bytes a parte da memria gasta com este mapa de apenas 3% l Se a unidade for maior tamanho do mapa menor, mas aumenta o desperdcio de memria (fragmentao interna) n Desvantagem: para encontrar k unidades de alocao livres percorrer mapa inteiro procurando k bits iguais a zero muito lento! 44 Gerncia de Memria Eduardo Nicola F. Zagari Gerncia de Gerncia de Uso da Memria Uso da Memria (a) Parte da memria (b) Mapa de bits correspondente (c) Lista ligada correspondente 23 45 Gerncia de Memria Eduardo Nicola F. Zagari n Lista ligada de segmentos alocados e de segmentos livres n Ordenao por endereos l rpida atualizao quando do trmino/remoo da memria l Possveis combinaes para a concluso de um processo X: l Com listas duplamente encadeadas a tarefa ainda mais simples! B Gerncia Gerncia de Uso da Memria de Uso da Memria com com Listas Ligadas Listas Ligadas A X A X B A A aps o trmino de X fica B X X B 46 Gerncia de Memria Eduardo Nicola F. Zagari Algoritmos de Alocao de Parties Algoritmos de Alocao de Parties n Como atender uma requisio de tamanho n a partir de uma lista de buracos livres? l Estratgias de alocao de memria para escolher o ponto em que deve ser carregado um processo recm criado ou que veio do disco por troca (swapped in) l Listas separadas para processos e buracos: 4mais rpido na busca por buracos 4mais lento na liberao de memria 4variante: os prprios buracos podem ser usados para implementar a lista de parties livres n First-fit: l A lista de parties livres percorrida e a primeira partio suficientemente grande para o pedido escolhida l A lista pode ser mantida em ordem aleatria ou ordenada em ordem crescente de endereo 4rpido 24 47 Gerncia de Memria Eduardo Nicola F. Zagari First First- -fit fit Processo C Sistema Operacional 3 KB Memria Principal Processo A 4 KB 2 KB 1 KB F Processo C 2 KB Memria Principal Processo A Processo F Sistema Operacional 48 Gerncia de Memria Eduardo Nicola F. Zagari Algoritmos de Alocao de Parties Algoritmos de Alocao de Parties n Next-fit: l Idntico ao First-fit com a diferena que a busca se inicia a partir do ltimo ponto em que encontrou um buraco 4desempenho ligeiramente mais lento que o First-fit n Best-fit: l A lista de parties livres percorrida e a menor partio suficientemente grande para o pedido escolhida l A lista ordenada em ordem crescente de tamanho 4lento se a lista no estiver ordenada (teria que percorrer a lista inteira) 4desempenho ruim devido a muitos buracos pequenos (fragmentao externa) 25 49 Gerncia de Memria Eduardo Nicola F. Zagari Best Best- -fit fit Processo C Sistema Operacional 3 KB Memria Principal Processo A 4 KB 2 KB 1 KB F Processo C 1 KB Memria Principal Processo A Processo F Sistema Operacional 50 Gerncia de Memria Eduardo Nicola F. Zagari Algoritmos de Alocao de Parties Algoritmos de Alocao de Parties n Worst-fit: l A lista de parties livres percorrida e a maior partio suficientemente grande para o pedido escolhida l A lista ordenada em ordem decrescente de tamanho 4diminui um pouco o problema da fragmentao n Quick-fit: l Listas separadas para alguns tamanhos mais comuns especificados (por exemplo, uma fila para 2K, outra para 4K, outra para 8K, etc) 4busca por buraco rpida 4entretanto, a liberao de memria lenta (reagrupar buracos e modific-los de fila) 26 51 Gerncia de Memria Eduardo Nicola F. Zagari Processo A Processo F Worst Worst- -fit fit Processo C Sistema Operacional 3 KB Memria Principal Processo A 4 KB 2 KB 1 KB F Processo C 3 KB Memria Principal Sistema Operacional 52 Gerncia de Memria Eduardo Nicola F. Zagari Swapping Swapping n Mesmo com o aumento da eficincia da multiprogramao e da gerncia de memria, muitas vezes um programa no podia ser executado por falta de uma partio livre disponvel n Em todos os esquemas apresentados anteriormente, um programa permanecia na memria principal at o final de sua execuo, inclusive nos momentos em que esperava por um evento, como uma operao de E/S n Uma soluo a tcnica de swapping, cujo objetivo o de liberar espao na RAM para que outros processos possam ser carregados e executados l Backing store disco rpido e grande o suficiente para acomodar cpias de todas as imagens de memria para todos os usurios l Verses modificadas de swapping so encontradas em vrios sistemas (p.ex., UNIX, Linux e Windows). 27 53 Gerncia de Memria Eduardo Nicola F. Zagari Swapping Swapping n Neste esquema, o SO escolhe um programa residente na memria principal, levando-o da memria para o disco (swap out) Processo A Memria Principal Sistema Operacional Processo C Processo B H 4 KB A S w a p
o u t Processo G 54 Gerncia de Memria Eduardo Nicola F. Zagari Swapping Swapping n Posteriormente, o processo retorna para a memria principal (swap in), como se nada tivesse ocorrido Processo H Memria Principal Sistema Operacional Processo C A Swap in Processo G 28 55 Gerncia de Memria Eduardo Nicola F. Zagari Consideraes: Consideraes: Relocao Relocao n Mapeamento de espao lgico em espao fsico de endereamento, em tempo de carregamento, torna ineficiente recarregar o processo em outra regio fsica diferente da do primeiro carregamento n Soluo: l Introduo de hardware que faa o mapeamento durante a execuo do processo: interceptador de endereos lgicos que soma um valor base aos mesmos, produzindo o endereo fsico l No h mais necessidade da tabela de endereos relocveis 56 Gerncia de Memria Eduardo Nicola F. Zagari Consideraes: Consideraes: Relocao Relocao n Relocao Esttica: l Mapeamento em tempo de carregamento n Relocao Dinmica: l Mapeamento durante a execuo n Endereo Lgico = Endereo Virtual l o valor de um deslocamento em relao ao incio do programa 29 57 Gerncia de Memria Eduardo Nicola F. Zagari Consideraes: Consideraes: Relocao Relocao n Exemplo de hardware para mapeamento l Contm o endereo fsico onde foi carregado o incio do programa Registrador Base Instruo + Operao End. Lgico Endereo Fsico = Endereo Real (disponvel na memria) 58 Gerncia de Memria Eduardo Nicola F. Zagari Consideraes: Proteo Consideraes: Proteo n Proteo em relocao dinmica l Consiste em comparar o endereo fsico com o comprimento do programa l Instruo de chamada ao supervisor n Separao entre dados e instrues l Permite o compartilhamento de instrues por dois ou mais processos l Permite duplicar o tamanho mximo do espao lgico l Exige a duplicao do hardware necessrio para relocao e proteo 30 59 Gerncia de Memria Eduardo Nicola F. Zagari Alocao de Espao de Alocao de Espao de Swapp Swapp n Garantir espao em disco sempre que algum processo swapped out n Os algoritmos para gerenciar o espao alocado em disco para swapping so os mesmos de gerncia da memria principal n Em alguns sistemas, isto feito somente no momento da criao do processo e tal espao permanece reservado n A nica diferena que a quantidade de espao reservado no disco deve ser um mltiplo do tamanho dos blocos do disco