Grátis 23 pág.
Pré-visualização | Página 1 de 8Capítulo 4 Gerenciamento de Memória Memória é um recurso importante que deve ser cuidadosamente gerenciado. Enquanto a capacidade de armazenamento dos computadores vem crescendo continuamente, a complexida- de do software cresce talvez à taxas maiores. A parte do sistema operacional que gerencia a memória é chamada de gerenciador de memória, sendo o objeto deste capítulo. Dentre outras tarefas, o gerenciador de memória monitora quais partes da memória estão em uso e quais estão disponíveis; aloca e libera memória para os processos; e gerencia a permuta de processos entre memória principal e secundária (quando a memória principal não é capaz de abrigar todos os processos). 4.1 Gerenciamento de Memória Sem Permuta ou Pagina- ção Sistemas de gerenciamento de memória podem ser divididos em duas grandes classes: aque- les que movem processos entre a memória principal e secundária (tipicamente disco) durante a execução, e aqueles que mantêm os processos �xos em memória primária. Na primeira classe, o gerenciamento é baseado em técnicas de swapping (permuta) ou de paginação. 4.1.1 Monoprogramação O esquema mais simples possível de gerenciamento de memória consiste em ter-se somente um processo na memória durante toda a sua execução. O usuário carrega um programa do disco para a memória, podendo este fazer uso de toda a máquina. Se a memória for insu�ciente, o programa simplesmente tem sua execução rejeitada. Embora essa técnica ter sido comum em meados da década de sessenta, ela não é mais utilizada. A técnica usada em microcomputadores é mostrada na �gura 4.1. A memória é dividida entre o sistema operacional e um processo do usuário. O sistema operacional pode estar no �nal da memória RAM (Random Access Memory) como mostrado na �gura 4.1(a), ou em ROM (Read Only Memory), como mostrado na �gura 4.1(b), ou ainda tendo os device drivers em ROM e o resto do sistema operacional em RAM ocupando a parte baixa da memória, como mostrado na �gura 4.1(c). A arquitetura IBM PC original (processadores Intel x86) utilizava o modelo da �gura 4.1(c), com os device drivers localizados no bloco de 8K mais alto dentro do espaço de 1M de endere- çamento. O programa na ROM é chamado de BIOS (Basic Input Output System). 4.1 Gerenciamento de Memória Sem Permuta ou Paginação 67 cional em RAM sistema opera- usuário programa do sistema opera- cional em ROM usuário programa do drivers de dispo- sitivos em ROM usuário programa do 0xFFF... 0 (b) (c)(a) cional em RAM sistema opera- Fig. 4.1: Três formas de organizar a memória para o sistema operacional e um processo do usuário Quando o sistema é organizado dessa maneira, somente um processo pode estar em execução por vez. O usuário entra com um comando no terminal, e o sistema operacional carrega o programa requerido do disco para a memória e o executa. Quando o processo termina, o sistema operacional reassume a CPU e espera por um novo comando para carregar um outro processo na memória já liberada pelo primeiro. 4.1.2 Multiprogramação e Uso da Memória Embora a monoprogramação seja usada em pequenos computadores, em computadores com múltiplos usuários ela é proibitiva. Grandes computadores frequentemente provêem serviços interativos para vários usuários simultaneamente. Para tal, a habilidade de ter-se mais de um processo na memória em um mesmo instante de tempo é imprescindível por razões de desempenho. Uma outra razão para ter-se a multiprogramação, é que muitos processos gastam uma substancial fração do seu tempo para completar E/S em disco. É comum para um processo permanecer em um loop lendo um bloco de dados de um arquivo em disco e então realizando alguma computação sobre o conteúdo dos blocos lidos. Se for gasto 40 mseg para ler um bloco e a computação demanda apenas 10 mseg, sem a multiprogramação a CPU estará desocupada esperando pelo acesso ao disco durante 80% do tempo. Modelagem da Multiprogramação Quando a multiprogramção é usada, o percentual de utilização da CPU aumenta. Via de regra, se a média dos processos utilizam CPU somente 20% do tempo que permanecem na memória, com 5 processos em memória, a CPU deverá estar ocupada o tempo todo. Este modelo é otimista, entretanto, pois assume que os 5 processos nunca estejam esperando por E/S ao mesmo tempo, bem como despreza o esforço de gerenciamento dos 5 processos por parte do sistema operacional. O melhor modelo é ver o uso da CPU do ponto de vista probabilístico. Suponha que os processo gastem em média uma fração p do tempo à espera de E/S. Com n processos na memória por vez, a probabilidade que todos os n processos estejam esperando por E/S é p n . 4.1 Gerenciamento de Memória Sem Permuta ou Paginação 68 A utilização da CPU é então 1� p n . A �gura 4.2 mostra a utilização da CPU em função de n, chamado grau de multiprogramação. 100 80 60 40 20 0 1 2 3 4 5 6 7 8 9 10 grau de multiprogramação (n) 80 de E/S 50% de E/S 20% de E/S utilização da CPU (%) Fig. 4.2: Utilização da CPU como uma função do número de processos na memória Da �gura está claro que caso os processos gastem 80% do seu tempo esperando por E/S, ao menos 10 processos devem estar na memória por vez para obter um desperdício de CPU em torno de 10%. Quando se considera que um processo interativo aguardando comandos do terminal está em um estado de espera de E/S, deve �car claro que tempos de espera para E/S superiores a 80% são usuais. Processos utilizando unidades de armazenamento com elevada frequência, também contribuem para o aumento deste percentual. 4.1.3 Multiprogramação com Partições Fixas Se adotarmos a estratégia de admitir mais de um processo na memória por vez, devemos estabelecer uma estratégia de organização da mémória. A estratégia mais simples consiste em dividir a memória em n partições (possivelmente diferentes). Estas partições podem, por exemplo, ser estabelecidas na con�guração do sistema operacional. Quando um processo inicia, este pode ser colocado em uma �la de entrada para ocupar a menor partição de tamanho su�ciente para acomodá-lo. Desde que as partições são �xas, qualquer espaço em uma partição não usado pelo processo é perdido. A �gura 4.3(a) apresenta este esquema de partição. A desvantagem de se ordenar os processos que chegam em �las separadas torna-se aparente quando a �la para a maior partição está vazia, mas a �la para a menor partição está cheia, como no caso das partições 1 e 4 na �gura 4.3(a). Uma organização alternativa é manter uma �la única como na �gura 4.3(b). Toda vez que uma partição é liberada, a mesma é alocada ao primeiro processo da �la. Uma vez que é indesejável gastar uma partição grande com um processo pequeno, uma estratégia mais e�caz é procurar em toda �la de entrada a maior tarefa para a partição liberada. Note que o último algoritmo discrimina os processos pequenos, quando é usualmente desejável dar a eles o melhor tratamento, não o pior. Este sistema, com partições �xas de�nidas pelo operador, foi usado pelo sistema operacional OS/360 nos grandes mainframes da IBM por muitos anos. Ele era chamado de MFT (Multi- programing with a Fixed number of Task). Ele é simples de se entender e igualmente simples 4.1 Gerenciamento de Memória Sem Permuta ou Paginação 69 operacional sistema partição 2 partição 1 partição 4 partição 3 operacional sistema partição 2 partição 1 partição 4 partição 3 100K 200K 400K 700K (b)(a) Fig. 4.3: (a) Partições de memória �xa com �las de entrada separadas para cada partição; (b) partição de memória �xa com uma �la simples de entrada de implementar: os processos que chegam são colocados em uma �la até que uma partição adequada seja liberada, quando então são carregados Quais as funções do gerenciamento de memória?Sua principal função é controlar o uso da memória estendida do computador, de modo que dois ou mais aplicativos ou dispositivos não utilizem o mesmo endereço de memória ao mesmo tempo.
O que é e qual o objetivo do gerenciamento de memória?Objetivos do Gerenciamento de Memória
Tentar manter na memória principal o maior número de processos residentes, permitindo maximizar o compartilhamento d processador e demais recursos computacionais.
Como funciona o gerenciamento de memória do Windows?Gerenciamento de memória
A memória física recebe aquilo que o Windows considera essencial, como o próprio sistema operacional e as aplicações que o usuário estiver usando no momento. O restante, ou seja, aquilo que o Windows acredita que não será usado tão urgentemente, fica na memória virtual.
|