SISTEMAS OPERACIONAIS Gerenciamento de Memória. GERENCIAMENTO DE MEMÓRIA  A memória é um recurso importante que deve ser gerenciado com cuidado.  Para

Download SISTEMAS OPERACIONAIS Gerenciamento de Memória. GERENCIAMENTO DE MEMÓRIA  A memória é um recurso importante que deve ser gerenciado com cuidado.  Para

Post on 22-Apr-2015

102 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li> Slide 1 </li> <li> SISTEMAS OPERACIONAIS Gerenciamento de Memria </li> <li> Slide 2 </li> <li> GERENCIAMENTO DE MEMRIA A memria um recurso importante que deve ser gerenciado com cuidado. Para isso a maioria dos computadores tem uma hierarquizao de memria, como visto na disciplina de Arquitetura de Computadores. O trabalho do SO coordenar como essas memrias sero utilizadas. </li> <li> Slide 3 </li> <li> GERENCIAMENTO DE MEMRIA Assim, a parte do SO que gerencia a hierarquia de memria chamada Gerenciador de Memria, cujo trabalho controlar as partes das memrias que esto em uso ou no, alocar e desalocar memrias aos processos quando necessrio, e gerenciar a troca entre memria principal e o disco quando a memria principal muito pequena. </li> <li> Slide 4 </li> <li> Gerenciamento de Memria Algumas funes do Gerenciador de memria: Controlar quais as unidades de memria esto ou no esto em uso, para que sejam alocadas quando necessrio; Liberar as unidades de memria que foram desocupadas por um processo que finalizou; Tratar do Swapping entre memria principal e memria secundria. Transferncia temporria de processos residentes na memria principal para memria secundria. </li> <li> Slide 5 </li> <li> Gerenciamento de Memria Tcnicas de Alocao de Memria: Alocao Contgua Simples; Alocao Particionada Esttica; Alocao Particionada Esttica Absoluta; Alocao Particionada Esttica Relocvel; Alocao Particionada Dinmica. </li> <li> Slide 6 </li> <li> Alocao Contgua Simples Alocao implementada nos primeiros sistemas e ainda usada nos monoprogramveis; A Memria dividida em duas reas: rea do Sistema Operacional rea do Usurio Um usurio no pode usar uma rea maior do que a disponvel; Sem proteo: Um usurio pode acessar a rea do Sistema Operacional. Memria principal Sistema Operacional rea de Programas do usurio </li> <li> Slide 7 </li> <li> Alocao Contgua Simples Registrador de proteo delimita as reas do sistema operacional e do usurio; Sistema verifica acessos memria em relao ao endereo do registrador; A forma de alocao era simples, mas no permitia utilizao eficiente de processador e memria; Memria principal Sistema Operacional rea de Programas do usurio Reg </li> <li> Slide 8 </li> <li> Alocao Contgua Simples Programas de usurio limitados pelo tamanho da memria principal disponvel. Soluo: Overlay Dividir o programa em mdulos; Permitir execuo independente de cada mdulo, usando a mesma rea de memria; rea de Overlay rea de memria comum onde mdulos compartilham mesmo espao. Memria principal Sistema Operacional rea de Overlay rea do Mdulo Principal ABC </li> <li> Slide 9 </li> <li> Alocao Particionada Multiprogramao. Necessidade do uso da memria por vrios usurios simultaneamente. Ocupao mais eficiente do processador; A memria foi dividida em pedaos de tamanho fixo chamados parties; O tamanho de cada partio era estabelecido na inicializao do sistema; Para alterao do particionamento, era necessrio uma nova inicializao com uma nova configurao. </li> <li> Slide 10 </li> <li> Alocao Particionada Esttica Alocao Particionada Esttica Absoluta: Compiladores gerando cdigo absoluto; Endereos relativos ao incio da memria; Programas exclusivos para parties especficas. Alocao Particionada Esttica Relocvel: Compiladores gerando cdigo relocvel; Endereos relativos ao incio da partio; Programas podem rodar em qualquer partio. </li> <li> Slide 11 </li> <li> Alocao Particionada Esttica Proteo: Registradores com limites inferior e superior de memria acessvel. Programas no ocupam totalmente o espao das parties, gerando uma fragmentao interna. Memria principal Sistema Operacional Partio C Partio A Reg Partio B </li> <li> Slide 12 </li> <li> Alocao Particionada Dinmica No existe o conceito de partio dinmica. O espao utilizado por um programa a sua partio. No ocorre fragmentao interna. Ao terminarem, os programas deixam espalhados espaos pequenos de memria, provocando a fragmentao externa. Memria principal Sistema Operacional Processo E Processo A Processo C Processo F </li> <li> Slide 13 </li> <li> Alocao Particionada Dinmica Solues: Reunio dos espaos contguos. Relocao Dinmica: Movimentao dos programas pela memria principal. Resolve o problema da fragmentao. Consome recursos do sistema Processador, disco, etc. Memria principal Sistema Operacional Processo E Processo A Processo F </li> <li> Slide 14 </li> <li> Gerenciamento de Memria sem Troca ou Paginao Este o esquema de gerencia de memria mais simples, pois consiste em executar somente um programa por vez, compartilhando a memria entre o programa em execuo e o SO. </li> <li> Slide 15 </li> <li> Multiprogramao com parties Fixas Em sistemas de tempo compartilhado, ter vrios processos na memria simultaneamente significa que quando um processo est bloqueado outro est usando o processador. Dessa forma, a multiprogramao aumenta a utilizao da CPU. </li> <li> Slide 16 </li> <li> Multiprogramao com parties Fixas A melhor maneira de conseguir isso dividindo a memria em n parties que poder ser feito manualmente quando o sistema iniciado. Assim, quando um Job chega para ser executado ele ser colocado em uma fila para ser alocado na menor partio capaz de armazen-lo. No entanto, pelo fato das parties serem fixas o espao no utilizado por um job perdido. </li> <li> Slide 17 </li> <li> Multiprogramao com parties Fixas </li> <li> Slide 18 </li> <li> A desvantagem de classificar os Jobs em filas de entradas separadas torna-se aparente quando uma fila para uma partio grande est vazia e para uma partio pequena est cheia. Uma organizao alternativa manter uma nica fila de entrada. </li> <li> Slide 19 </li> <li> Multiprogramao com parties Fixas </li> <li> Slide 20 </li> <li> Esta organizao impede o desperdcio de espao em uma partio, alocando o job na partio de acordo com seu tamanho. Em geral, Jobs pequenos so interativos, sendo assim uma boa estratgia dispor de pelo menos uma partio pequena, a qual permitir que jobs pequenos sejam executados sem a necessidade de alocar uma partio grande para estes Jobs. </li> <li> Slide 21 </li> <li> Multiprogramao com parties Fixas Outra abordagem estabelecer uma regra determinando que um job elegvel para executar, no possa ser ignorado mais do que x vezes. Toda vez que ignorado o job ganha um ponto. Uma vez adquirido certa quantia de pontos ele no pode ser ignorado novamente. </li> <li> Slide 22 </li> <li> Realocao e Proteo A multiprogramao introduz dois problemas que devem ser resolvidos, a relocao e proteo. Como visto acima, jobs diferentes executaro em endereos diferentes. </li> <li> Slide 23 </li> <li> Realocao e Proteo Suponha que uma primeira instruo seja a chamada para um procedimento no endereo absoluto 100. Se esse programa for carregado na partio 1 esta solicitao ser executada dentro do sistema operacional. Se o programa for carregado na partio 2, isso gerar uma problema conhecido por realocao. </li> <li> Slide 24 </li> <li> Realocao e Proteo A realocao durante o carregamento no resolve o problema da proteo. Como os programas nesse sistema utilizam endereos absolutos de memria em vez de endereos relativos a um registrador, no h como impedir que um programa crie uma instruo que l ou grava em qualquer parte da memria, inclusive em rea de outros usurios. </li> <li> Slide 25 </li> <li> Realocao e Proteo Uma soluo alternativa para a realocao e proteo, equipar a mquina com dois registradores especiais de hardware, chamados registrador de base e registrador de limite. </li> <li> Slide 26 </li> <li> Realocao e Proteo Em suma, a multiprogramao implica em um problema: Ao mudar de partio o programa necessita ser relocado. Esta relocao implica em correo de endereos de instrues: Via Software (Mapa de Correes) Via Hardware (Registrador de base) </li> <li> Slide 27 </li> <li> Realocao e Proteo As referncias a posies de memrias feitas pelos processos devem ser corrigidas segundo o deslocamento dele dentro da memria. Proteo: Um processo no pode invadir a memria de outros processos. Se isso acontecer programas maliciosos poderiam interferir no funcionamento de outros programas fazendo acesso direto memria e interferindo na sua execuo. </li> <li> Slide 28 </li> <li> Questionrio 1. Qual a funo do SO no gerenciamento de memria? 2. Explique os tipos de gerenciamento de memria </li> </ul>