Sistemas Operacionais 12 gerenciamento de memória

download Sistemas Operacionais 12   gerenciamento de memória

If you can't read please download the document

description

Sistemas Operacionais 12 gerenciamento de memória

Transcript of Sistemas Operacionais 12 gerenciamento de memória

2. Prof.: VIDAL [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] Para saber mais: pg 106-117