Sistemas Operacionais 12 gerenciamento de memória

Post on 25-Jun-2015

281 views 1 download

description

Sistemas Operacionais 12 gerenciamento de memória

Transcript of Sistemas Operacionais 12 gerenciamento de memória

  • 1. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Aula 7a: Gerenciamento de Memria Parte I

2. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Introduo: A maioria dos computadores possuem uma hierarquia de memria: A memria mais acima da hierarquia de memria (registradores), so as mais caras e mais rpidas, e por isso, as menores, alm de serem volteis. As memrias secundarias, como o HD e CD-ROM, so as mais baratas, e por isso, so as maiores, alm de serem no-volteis. 3. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br O gerenciamento da hierarquia de memria pelo gerenciador de memria importante: Devemos saber quais partes da memria esto alocadas aos processos, e quais partes esto disponveis. Devemos gerenciar a alocao e a desalocao da memria dinamicamente. Devemos gerenciar a troca entre a memria e o HD, caso a memria seja insuficiente para armazenar todos os processos. 4. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br O sistemas de gerenciamento de memria podem ser divididos em duas classes: Os que mantm todo o processo na memria durante toda a execuo: Monoprogramao sem troca ou paginao; Multiprogramao com parties fixas. Os que movem todo (ou parte do) processo entre a memria e o disco durante a sua execuo: Troca; Memria virtual. 5. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br A escolha do melhor sistema de gerenciamento depende de fatores como custo, o tamanho, e a velocidade das memrias. Para a maior parte dos sistemas, o gerenciamento baseado em memria virtual a melhor escolha. 6. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Monoprogramao sem troca ou paginao: Baseado em gerenciamento de memria bem simples: O programa executa na CPU at a sua concluso; O usurio digita um comando, e o sistema cria um processo para executar o programa deste comando. Depois de o processo acabar a execuo, o sistema mostra o prompt, e espera por outro comando do usurio. 7. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br A memria compartilhada somente entre este programa e o sistema operacional: Nesta primeira organizao, o sistema operacional e carregado dentro da parte inferior da RAM quando o computador inicializado, e o programa do usurio atualmente em execuo pode usar toda a memria restante do sistema. 8. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br A memria compartilhada somente entre este programa e o sistema operacional: Na segunda organizao, o sistema operacional est sempre armazenado dentro de uma memria ROM, mapeada na parte superior da memria principal. Assim como antes, o programa do usurio pode usar toda a memoria restante do sistema. 9. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br A memria compartilhada somente entre este programa e o sistema operacional: Na ltima organizao, os drivers de dispositivos, que acessam os dispositivos, esto em uma memria ROM mapeada na parte superior da memria, e o sistema operacional carregado na parte inferior da memria. O restante da memria pode ser usado pelo programa do usurio. Este modelo era usado pelos micros IBM-PC, sendo que os drivers ficavam na BIOS, e o sistema operacional era, por exemplo, o MS-DOS. 10. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Multiprogramao com parties fixas: Gerenciamento usado pelos sistemas de gerenciamento em lote. Pode ser usado pelos sistemas interativos, pois nestes comum que os processos bloqueiem por E/S. 11. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Permite a execuo de vrios trabalhos, do seguinte modo: A memria e dividia em conjunto de vrias parties fixas, cujos tamanhos podem ser diferentes. Ao executar um processo, o sistema o coloca em uma das parties disponveis. O processo ocupa uma partio at terminar a sua execuo. A memria dividia em entre o sistema operacional e um conjunto de n parties, cujos tamanho so definidos quando o sistema operacional carregado. Os tamanhos destas parties podem ser diferentes, e no varias at que o sistema seja carregado. 12. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Um modo de escolher uma partio o de associar uma fila a cada uma das parties: O trabalho colocado na fila cuja partio possui o tamanho mais prximo do tamanho do processo. Quando a partio for liberada, o primeiro trabalho da fila associado partio escolhido. Suponha que o sistema operacional inicializou, e que foram criadas quatro parties, nas quais podero ser colocados os processos que so usados para executar os trabalhos submetidos ao sistema. Os tamanhos das parties so, como podemos ver pela figura, iguais a 100K, 200K, 400K, 700K e 800K. O sistema operacional est numa partio de 100K. 13. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Um modo de escolher uma partio o de associar uma fila a cada uma das parties: O trabalho colocado na fila cuja partio possui o tamanho mais prximo do tamanho do processo. Quando a partio for liberada, o primeiro trabalho da fila associado partio escolhido. Suponha que seis trabalhos, numerados de 1 a 6, foram submetidos, sendo que seus tamanhos so iguais, respectivamente, a 50K, 75K, 5K, 190K, 12K, e 2K. Ento o sistema: - Pode colocar o trabalho 1 na fila da posio 4 - Pode colocar o trabalho 2 na fila da posio 1 - Pode colocar o trabalho 3 na fila da posio 4 - Coloca o trabalho 4 na fila da posio 2 - Pode colocar o trabalho 5 na fila da posio 1 - Pode colocar o trabalho 6 na fila da posio 1 14. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Uma outra ideia a de termos uma nica fila: Todos os trabalhos so colocados nesta fila. Quando uma partio for liberada, podemos: Ou escolher o tamanho mais prximo do incio da fila cujo tamanho menor ou igual ao desta partio. Ou escolher o trabalho da fila cujo tamanho o mais prximo do tamanho desta partio. O sistema criou quatro parties que podem ser usadas para a execuo dos trabalhos, com tamanhos iguais a 100K, 200K, 300K e 100K. Agora, temos uma nica fila com todos os trabalhos. Suponha que seis trabalhos foram submetidos ao sistema cujos tamanhos so dados acima destes trabalhos. 15. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Uma outra ideia a de termos uma nica fila: Todos os trabalhos so colocados nesta fila. Quando uma partio for liberada, podemos: Ou escolher o tamanho mais prximo do incio da fila cujo tamanho menor ou igual ao desta partio. Ou escolher o trabalho da fila cujo tamanho o mais prximo do tamanho desta partio. Um primeiro algoritmo poderia ser o seguinte: quando uma das parties liberada, o primeiro trabalho da fila cujo tamanho menor do que a partio o escolhido. Por exemplo, se a partio 2 for liberada, o trabalho 2 ser escolhido e colocado na partio. Depois disso, se a partio 3 for liberada, o trabalho 1 ser o escolhido. 16. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Uma outra ideia a de termos uma nica fila: Todos os trabalhos so colocados nesta fila. Quando uma partio for liberada, podemos: Ou escolher o tamanho mais prximo do incio da fila cujo tamanho menor ou igual ao desta partio. Ou escolher o trabalho da fila cujo tamanho o mais prximo do tamanho desta partio. O problema desse algoritmo o desperdcio de espao dentro da partio: na partio 2, o espao desperdiado foi de 195K, e na partio 3, o espao gasto foi de 90K. 17. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Uma outra ideia a de termos uma nica fila: Todos os trabalhos so colocados nesta fila. Quando uma partio for liberada, podemos: Ou escolher o tamanho mais prximo do incio da fila cujo tamanho menor ou igual ao desta partio. Ou escolher o trabalho da fila cujo tamanho o mais prximo do tamanho desta partio. Um outro algoritmo seria o de escolher o processo da fila cujo tamanho se aproxima do tamanho da partio que foi liberada. Quando a partio 2 for liberada, o processo 3 ser o escolhido, pois o tamanho da partio de 100K. Se, depois disso, a partio 3 for liberada, o processo 4 ser o escolhido. 18. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Uma outra ideia a de termos uma nica fila: Todos os trabalhos so colocados nesta fila. Quando uma partio for liberada, podemos: Ou escolher o tamanho mais prximo do incio da fila cujo tamanho menor ou igual ao desta partio. Ou escolher o trabalho da fila cujo tamanho o mais prximo do tamanho desta partio. Ao usarmos este algoritmo, os espaos gastos dentro da partio sero os menores possveis. O problema que os trabalhos menores podem nunca ser executados, o trabalho 5, caso sempre seja submetido um outro trabalho com tamanho maior do que 5K, antes de este trabalho ser executado. 19. Prof.: VIDAL claudio_vidal@alcidesmaya.com.br Para saber mais: pg 106-117