TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Sistemas Operacionais

Ensaios: Sistemas Operacionais. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  14/9/2013  •  1.330 Palavras (6 Páginas)  •  340 Visualizações

Página 1 de 6

Relatório 03: Gerenciamento de memória

1.1 Técnica de Gerenciamento de Memória

Quando o sistema operacional gerencia a memória do computador, duas grandes tarefas precisam ser cumpridas.

1. Cada processo deve ter memória suficiente para ser executado. Ele não pode utilizar a memória de outro processo e outro processo também não pode utilizar a sua memória.

2.Os diferentes tipos de memória no sistema devem ser bem utilizados para que cada processo seja executado de forma eficaz.

Para realizar a primeira tarefa, o sistema operacional tem de definir os limites de memória para cada tipo de software e aplicativo.

1.2 Técnica de Gerenciamento de Memória Virtual

Como um exemplo, vamos criar um pequeno sistema imaginário com 1 Gigabyte (1.000 megabytes) de memória RAM. Durante o processo de boot (inicialização), o sistema operacional do nosso computador imaginário vai utilizar toda a memória disponível. Depois ele "recua" o suficiente para atender às necessidades do próprio sistema operacional. Vamos supor que o SO precise de 300 megabytes para rodar. Agora, o sistema operacional vai para o fim da memória RAM e distribui essa memória para diversos drivers necessários para controlar os subsistemas do computador. No nosso computador imaginário, os drivers ocupam 200 megabytes. Agora que o sistema operacional foi completamente carregado, existem 500 megabytes disponíveis para os processos dos aplicativos.

Quando os aplicativos começam a ser carregados na memória, eles são carregados em blocos. O tamanho desses blocos é determinado pelo sistema operacional. Se o tamanho do bloco é 2 megabytes, todo processo carregado receberá um pedaço da memória que é múltiplo de 2 megabytes. Os aplicativos serão carregados nestes tamanhos fixos de blocos. Os blocos iniciarão e terminarão nos limites estabelecidos por palavras de 4 ou 8 bytes. Esses blocos e limites organizam o carregamento dos aplicativos, impedindo sobreposição. Depois que o processo estiver concluído, a pergunta que nos resta é: o que se pode fazer quando o espaço de 500 megabytes for ocupado?

Na maioria dos computadores, é possível adicionar mais memória, além da capacidade original. Por exemplo, você pode expandir a memória RAM de 1 para 2 Gigabytes. Isto funciona, mas custa caro. Este fato também ignora um dado importante da computação: a maioria da informação que um aplicativo armazena na memória não está sendo usada o tempo inteiro. Como um processador só pode acessar um local da memória por vez, a maior parte da memória RAM não é utilizada. Como o espaço de disco rígido é mais barato do que a memória RAM, mover a informação da memória RAM para o disco rígido é uma solução sem custo algum. Esta técnica é conhecida como gerenciamento de memória.

1.3 Gerenciamento de Memória:

Muito se discute sobre o espaço de endereçamento de memória nos sistemas de 32 e 64 bits. Em um sistema de 32 bits, existe um total de 4GB de espaço de endereço virtual disponível (2^32 = 4GB) dos quais, por padrão, 2GB é alocado para o kernel e os outros 2GB é alocado para a memória do modo de usuário. Os componentes internos de dados, drivers de dispositivos, cache do sistema de arquivos, pilhas do kernel e estruturas de código de sessão são todos mapeados pelo kernel.

Antes do Windows Vista e Windows Server 2008, o gerenciador de memória determinava no momento da inicialização o quanto do espaço de endereço deveria ser atribuído a diferentes necessidades. No entanto, isso levou a situações em que um espaço determinado se esgotasse, enquanto em outra área havia bastante espaço livre. Quando isso ocorria, algumas vezes o sistema ou aplicação parava de responder e ocorriam falhas. Para resolver isso, é utilizado o recurso Dynamic Kernel Address Space, em versões de 32 bits do Windows Server 2008.

O gerenciador dinâmico de memória trata o espaço de endereço do kernel, alocando e desalocando espaços para usos diversos, atendendo as necessidades do sistema. Como resultado, a quantidade de memória virtual sendo usada no kernel irá aumentar e diminuir com base na atividade do sistema. Assim, a necessidade de ajuste manual é reduzida, dada as melhorias incorporadas ao sistema operacional.

Em todas as versões do Windows anteriores ao Windows Vista/2003, quando uma página física (tipicamente com 4KB) que foi atribuída a um processo e foi requisitada pelo sistema, o gerenciador de memória iria colocar a página no final da lista de espera. Se o processo necessitar acessar a página novamente, o gerenciador de memória recuperará a página alocada na lista de espera e irá reajustá-lo de volta para o processo. Se um processo necessita de acesso a uma nova página de memória física, o gerenciador de memória irá alocar essa página na frente da lista de espera. Assim, todas as páginas na lista de espera são tratadas igualmente, usando somente a ordem na qual eles foram colocados na lista para classificá-las.

Começando com o Windows Vista, cada página de memória tem uma prioridade que varia de zero a sete. A lista de espera é dividida em outras oito listas, onde cada lista lida com as páginas de uma prioridade diferente. Quando o gerenciador de memória quer usar uma página da lista de espera, ele toma primeiramente as páginas que possuem baixa prioridade. A prioridade de uma página geralmente é semelhante à prioridade do thread na qual ela foi atribuída. Se essa mesma página for compartilhada, então a prioridade mais elevada será usada. Por padrão, os processos têm um valor de prioridade de página igual a cinco, no entanto, existem funções que permitem que aplicativos possam alterar as prioridades das páginas.

O benefício real das prioridades de memória entra em jogo quando as aplicações podem ter conhecimento das prioridades relativas das páginas. Um exemplo disso seria o recurso SuperFetch no Windows Vista, que é um recurso que executa tarefas em segundo plano, com baixa prioridade e geralmente usado quando o computador está ocioso, tornando o sistema notavelmente mais veloz. Tecnologia essa que foi empregada nas versões futuras do Windows, tanto na família de servidores quanto na família de desktops.

A memória física no Linux é a memória RAM propriamente dita (os módulos de memória). Já a área de troca é um espaço ou partição que geralmente é criada no HD que serve para desempenhar a função da memória, caso exista falta de espaço na memória RAM, evitando assim a perda drástica de desempenho. A união das duas formam memória virtual.

No Linux a memória funciona da seguinte maneira, processos que estão em execução tem prioridade na memória, quando termina um processo e se tiver espaço na memória, ficam resíduos desse processo na memória para uma futura volta desse processo ser mais rápida. Caso essa memória RAM esteja lotada com processos que estão em execução, aí começa a utilização da memória SWAP (troca). Siga os exemplos abaixo que você ira entender:

Digamos que você está com 64 MB de memória RAM e uma SWAP (área de troca) de 200 MB.

Carrego um processo que utiliza espaço de 12 MB e outro de 4 MB, após terminar os processos ficarão resíduos na memória para que futuramente sejam carregado mais rapidamente esses processos.

Carrego agora 3 processos, cada um com 20 MB de memória, após ser terminado um processo ficarão resíduos somente do que sobrou de espaço, pois ele prioriza os processos que estão em execução.

Pegando o exemplo anterior, com os 3 processos em execução, executo mais 1 de 20 MB, após verificar que a memória RAM está cheia, ele começa a utilizar a memória de troca (SWAP).

1.4 Sistemas de Gerenciamento de Memória

Da mesma forma que as APIs provêem um meio consistente para que os aplicativos utilizem os recursos do computador, a interface com o usuário estrutura a interação entre o usuário e o computador. Na última década, quase todo o desenvolvimento de interfaces de usuário foi feito na área da interface gráfica (GUI - graphical user interface). Duas empresas receberam mais atenção e conquistaram maior fatia de mercado: Apple Macintosh e Microsoft Windows. O popular sistema operacional com código-fonte aberto, o Linux, também utiliza uma interface gráfica.

...

Baixar como  txt (8.3 Kb)  
Continuar por mais 5 páginas »