Académique Documents
Professionnel Documents
Culture Documents
Sumrio
Definio Requisitos Tcnicas de Gerenciamento de Memria
Gerenciamento de Memria
Principal operao trazer programas para dentro da memria principal para ser executados pelo processador. Dividir dinamicamente a parte User da memria principal de forma que acomode vrios processos. Alocar a memria de forma eficiente para empacotar tantos processos na memria quanto possvel para evitar que o processador fique ocioso. Deve ser capaz de rodar um programa em que seu tamanho seja maior que o disponvel pela memria real.
Requisitos
Relocao Proteo Compartilhamento Organizao lgica Organizao fsica
Requisito - Relocao
Capacidade de mover um programa de uma regio da memria principal para uma outra sem invalidar as referencias de memria dentro do programa; O programador no sabe onde o programa colocado na memria quando ele executado O hardware do processador e o SO devem ser capazes de traduzir os endereos de referencia de memria no cdigo do programa para o endereo fsico da memria.
Requisito - Proteo
Cada processo deve ser protegido contra interferncias no desejveis de outros processos de forma acidental ou intencional Processos no devem ser capazes de referenciar localizaes de memria de outro processo sem permisso; O hardware responsvel por fazer a verificao, caso a violao ocorra, o mesmo deve abortar tais instrues no ponto da execuo; O SO no pode prever todas as referencias de memria que o programa far (custo muito alto).
Requisito - Compartilhamento
Permitir que vrios processos acessem a mesma rea de memria principal vantajoso, que :
processos que so executados em um mesmo programa acessem a mesma cpia do programa e Processos que esto cooperando em uma mesma tarefa compartilhem acesso a uma mesma estrutura de dados
Vantagens:
Mdulo podem ser escritos e compilados independentemente, as referencias de um mdulo para o outro so resolvidas em tempo de execuo; Com um overhead adicional, diferentes graus de proteo (read only, execute only) podem ser dados para diferentes mdulos possvel introduzir mecanismo de compartilhamento entre mdulos
Dois nveis:
Memria principal -> mais rpida, voltil e custo alto Memria secundria -> lenta, armazenamento
permanente e barata
Partio Fixa
Memria principal dividida dentro de um no. de parties estticas (tamanho igual ou diferente). O processo carregado dentro de uma partio de tamanho = ou >. Ponto forte: Simples de implementar, pouco overhead no sistema Ponto fraco: Fragmentao interna -> Uso ineficiente da memria principal. Qualquer programa, no importando o quanto pequeno , ocupa uma partio na memria.
Algoritmo de Locao
Partio de tamanho igual: todas as parties com o mesmo tamanho, no importa qual partio usada; Partio de tamanho diferente:
Dois caminhos:
Uma fila para cada partio -> Processos so
atribudos de forma a minimizar o desperdcio de memria na partio Uma nica fila para todas as parties ->Os processos so atribudos a partio de menor tamanho disponvel no momento.
Partio Fixa
Desvantagens:
(cont.)
No. de parties especificadas no tempo de gerao do sistema -> limita o no. de processos ativos dentro do sistema Tamanho das parties so setadas no tempo de gerao do sistema -> jobs pequenos utilizam os espaos das parties de forma ineficiente
Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramao com no. fixo de tarefa)
Partio Dinmica
Parties so criadas dinamicamente, de forma que cada processo alocado dentro da partio do mesmo tamanho do processo Ponto forte: No tem fragmentao interna e usa de forma mais eficiente a memria Ponto fraco: Uso ineficiente do processador por necessitar de compactao para solucionar a fragmentao externa (memria vai ficando cheia de vrios buracos)
Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramao com no. varivel de tarefa)
Algoritmo de Locao
O SO deve decidir qual bloco livre a ser alocado ao processo de forma eficiente.
Trs algoritmos podem ser usados:
First-fit : Procura dentro da memria a partir o inicio e escolhe o primeiro bloco que grande o suficiente para o processo a ser alocado; Next-fit: Inicia a procura a partir do local onde foi feito a ultima locao e escolhe o bloco que grande o suficiente para o processo a ser alocado Best-fit: Escolhe o bloco que mais se aproxima do tamanho requerido;
Mais rpido e o melhor Ele gera no inicio da memria pequenas parties livres que necessitam ser pesquisadas a cada passo subseqente do first-fit
Next-fit:
Freqentemente aloca blocos livres no fim da memria Como resultado, blocos grandes de memria so quebrados rapidamente em blocos menores Compactao mais freqente requerida para obter grandes blocos no fim da memria
Tem a pior performance Procura pelo menor bloco que satisfaa o requisito Como resultado, a memria principal rapidamente quebrada em blocos muito pequenos que no podem satisfazer um pedido de alocao, exigindo assim uma compactao freqente
Best-fit:
Sistema Buddy
O espao disponvel total da memria tratado como um nico bloco de 2U (bloco de maior tamanho que pode ser alocado) Se um pedido de tamanho s tal que 2U-1 < s 2U,
Ento: o bloco completo 2U alocado Seno: O bloco divido em 2 buddies iguais. A diviso continua at que o bloco encontrado seja > ou = ao s requerido.
Uma forma modificada deste sistema usada para alocao de memria no kernel do UNIX. Tambm tem sido usado em aplicaes de sistemas paralelos (alocao e liberao de programas paralelos).
Paginao Simples
A memria divida em pequenos pedaos de tamanho igual chamados frames. Cada processo dividido em pequenos pedaos de tamanho igual ao do frame chamado pages. Quando um processo carregado na memria, todas as suas pginas so carregadas dentro dos frames disponveis, e uma tabela de pgina setada. Os frames usados no precisam estar em seqncia. Ponto forte: No tem fragmentao externa
Dentro do programa, cada endereo lgico consiste: um nmero de pagina + um offset da pagina Exemplo: Endereo lgico= Page 1 e offset 478
0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0
Traduo do endereo lgico para o endereo fsico feito pelo hardware do processador , da seguinte forma:
0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 Tabela de Pgina 0 0 0 0 1 0 1 10 0 0 1 1 0 20 1 1 0 0 1 Endereo fsico 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 Endereo lgico
Segmentao Simples
Cada processo dividido em um nmero de segmentos de tamanho desigual (limitado pelo tamanho mximo). Um processo carregado na memria, todos os seus segmentos so carregados dentro de parties dinmicas que no necessitam ser continuas. Ponto forte: No tem fragmentao interna Ponto fraco: Tem uma pequena quantidade de fragmentao externa
Exemplo de Segmentao
1400 2400
Segmento 0
Sub-rotina
3200
4300
4700
Segmento 1
Variveis Globais
Conceito de endereo lgico mantm uma tabela de blocos livres ; mantm uma tabela de segmentos para cada processo, contendo a endereo inicial na memria principal (base) + o tamanho do segmento (limite).
0 1
2
3 4
Traduo do endereo lgico para o endereo fsico feito pelo hardware do processador , da seguinte forma:
Segmento Offset
0 0 0 1 0 0 10 1 1 1 1 0 0 0 0 0 001011101110 1 011110011110
Limite
Endereo lgico
Tabela de Segmento
Endereo fsico
0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0