Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual

Download Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual

Post on 17-Apr-2015

102 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li> Slide 1 </li> <li> Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira Reynaldg@brfree.com.br Gerenciamento de Memria Virtual </li> <li> Slide 2 </li> <li> MEMRIA VIRTUAL Sistemas no virtuais. Necessidades da memria virtual. Memria virtual. Paginao por demanda. Interrupo por falta de pgina. Carga por demanda. Remoo de pginas. Tabela de blocos. Execuo com memria virtual. Paginao por demanda. Exerccios. FATEC - Sistemas Operacionais I Gerenciamento da Memria Virtual </li> <li> Slide 3 </li> <li> FATEC - Sistemas Operacionais I Sistemas no Virtuais Em todos os esquemas vistos previamente, o servio no executaria caso no existisse memria suficiente para a carga do programa inteiro. Esta restrio frequentemente resulta em reas livres e servios esperando para ser carregado e executado. Mais do que isso, os programadores quando pressionados a manter o espao de endereamento do programa pequeno, diminuem a produtividade bem com a qualidade da programao. Muitos estudos realizados tem mostrado que um programa quando restrito em termos de espao de memria, implicar em um custo crescente de programao ao longo de sua manuteno. Gerenciamento da Memria Virtual </li> <li> Slide 4 </li> <li> FATEC - Sistemas Operacionais I O tamanho da memria de um computador no deve influir na programao, ou mesmo na estruturao aplicativa. Se o programa for muito grande, em relao a memria, o sistema operacional, no o programador, dever aloc-lo adequadamente na memria. O programa dever utilizar somente a memria necessria durante a sua execuo. O sistema operacional no deve permitir que a memria torne-se fragmentada ou qualquer outra situao de sub-utilizao. O sistema dever se adaptar a demanda das atividades aplicativas, alocando, desalocando ou adicionando quando necessrio, de forma transparente e automtica. Necessidades da Memria Virtual </li> <li> Slide 5 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Espao Simblico Os programas contm descries dos dados, de instrues e descries de E/S. Os dados so descritos com nomes simblicos, tais como salrio, campoa, endereo, etc. Algumas instrues ou grupos de instrues, da mesma forma que um campo na memria, podero possuir nomes simblicos, os quais so referenciados nas operaes de desvio. O programa fonte ser efetivamente uma combinao de instrues simblicas, descries de dados e descries de operaes de E/S, todos estes existindo em um espao construdo pelo programador. Este espao denominado "ESPAO SIMBLICO". Esta combinao de instrues simblicas e nomes simblicos e parte integrante do processo de desenvolvimento, esto presentes em quase todas as linguagens de programao, sendo fundamentais na implementao das aplicaes. </li> <li> Slide 6 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Traduo Na preparao de um programa fonte para execuo, o programador executa a compilao de um conjunto de smbolos que constituem o Espao Simblico. O compilador converte os elementos simblicos de uma determinada linguagem de programao utilizada, para instrues de mquina, para dados e outros blocos de informaes. O compilador substitui os nomes simblicos por endereos reais. Este processo chamado "Traduo". Aps a traduo os endereos que compreendem o programa denominado "Espao de Endereamento". O compilador assinala endereos iniciando na localizao zero de memria, atribuindo crescentemente os endereos, as instrues e demais constantes. </li> <li> Slide 7 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Formas de Traduo de Endereos A traduo de endereos poder ser realizada de trs formas: Somente na Compilao. O programa compilado e o resultado da compilao criar um mdulo cujos, endereos so absolutos. Exemplo "mover 10 bytes da posio 100 para posio 200 da memria". Neste caso no haver traduo de "endereos na memria". Na compilao e na execuo (no virtuais). A compilao traduz os smbolos em endereos no absolutos, os quais sero ainda traduzidos no momento da execuo, porm no exigem consulta em tabelas. Na compilao e na execuo (virtuais). Idem ao anterior, porm o endereo no absoluto exigir ainda </li> <li> Slide 8 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Traduo de Endereos O programa visto pelo sistema como um conjunto de endereos virtuais, mapeados em pginas em uma tabela especfica do programa. No momento da execuo de suas instrues, acontecer traduo dos endereos virtuais para reais. A traduo feita por circuitos de hardware a qual consultar a tabela de pginas do programa para obter o bloco correspondente pgina. A traduo ocorrer tanto na busca de uma instruo como no endereamento de operandos. </li> <li> Slide 9 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Tipos de Relocao Esttica feita no momento em que o programa carregado para a memria. A traduo feita em uma nica vez na compilao do programa. O resultado um espao de endereamento que ter a origem zero, e por isso dever ser carregado na localizao zero da memria real. Este programa denominado PROGRAMA ABSOLUTO. No existir relocao de endereos do espao de endereos no programa e a memria real. Dinmica feita no momento da execuo do programa. A cada instruo ou dados referenciado, haver a traduo de endereos. O programa no tendo endereamento absoluto, no necessitar estar carregado continuamente. Este tipo de traduo denominado RELOCAO DINMICA e executado por dispositivos especiais de hardware. </li> <li> Slide 10 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Memria Virtual Em todos os esquemas no virtuais vistos anteriormente, notou-se que um servio no poderia ser executado, caso no houvesse memria suficiente para carregar todo o espao de endereamento. Esta restrio resulta em reas livres no utilizadas e servios que ficam esperando para ser carregados e executados. Embora os custos de memria decrescem com o passar do tempo, a necessidade de utilizao sempre foi, e sempre ser consideravelmente maior que a capacidade oferecida pelos computadores. A soluo para estes problemas basicamente foi a utilizao de MEMRIA VIRTUAL. Com o uso de memria virtual, o sistema operacional produz a iluso de existir uma memria extremamente grande. Como isto somente uma iluso, pois e memria no existe fisicamente, denominada memria virtual. A utilizao de memria virtual possui vrias implementaes. Analisaremos a seguir uma delas denominada "PAGINAO POR DEMANDA". </li> <li> Slide 11 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Paginao por Demanda A tcnica de gerenciamento denominada Paginao por Demanda, permitir que a soma dos espaos de todos os programas seja maior que a memria fsica disponvel. Esta ser permitida pelo fato de que todo o espao do programa no necessitar estar na memria fsica de uma vez, ao contrrio disto, somente as partes ativas de cada programa ter de ser carregada. </li> <li> Slide 12 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Implementao de Memria Virtual A memria fsica ser dividida em blocos iguais. Em algumas arquiteturas, a rea em que estar carregado o sistema operacional no sofre a diviso em blocos. Ser criado para cada programa no momento de a execuo uma tabela de pginas que conter: uma entrada para cada pgina a ser mapeada. Cada entrada contm o nmero da pgina ( de 0 a n), o estrado da pgina ( S - est presente na memria fsica, N - no est presente na memria fsica). Bloco - Nmero do bloco, ou seja, a localizao da pgina na memria fsica. O programa possuir um conjunto de endereos "VIRTUAIS" compreendido por pginas, que analisaremos a seguir. Uma pgina poder ter tamanho variado, entretanto a formatao mais comumente encontradas nas arquiteturas utilizam paginas de 4 Kbytes de tamanho. </li> <li> Slide 13 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Interrupo por Falta de Pgina Caso o hardware no momento da traduo encontrar o estado "N" na tabela de pginas, para aquela pgina especfica, gerado neste instante uma interrupo por falta de pgina. Este tipo de interrupo faz com que o sistema operacional carregue de volta para a memria e atualize a tabela de pginas. Neste momento o programa espera a resoluo da pgina demandada. Exatamente por isso o esquema denominado "PAGINAO POR DEMANDA". Desta forma todas as pginas necessrias sero carregadas por demanda. Isto garante que pginas no necessrias no sejam carregadas. </li> <li> Slide 14 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Carga por Demanda Uma cpia de todo o espao de endereo do programa armazenada na memria auxiliar quando o programa carregado para execuo. Durante a execuo, no momento de uma traduo, a pgina pode no estar na memria, isto implicar na interrupo por falta de pgina, que por sua vez far com que a pgina demandada seja carregada do disco para a memria. A tcnica de gerenciamento de paginao por demanda torna-se eficiente, a medida que o programa no fica restrito ao tamanho da memria fsica. Em outras palavras, o programa poderia ser maior que a memria fsica disponvel. </li> <li> Slide 15 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Remoo de Pginas Uma vez que a memria fsica esteja totalmente cheia, o sistema no poder carregar do disco para a memria uma pgina que fosse demandada. Neste caso dever haver uma poltica de remoo de pginas a ser realizada. Para liberar blocos na memria fsica, o sistema avaliar os blocos menos utilizados, far a liberao dos mesmos e atualizar as tabelas. </li> <li> Slide 16 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Tabela de Blocos O controle da memria fsica ser feito atravs da tabela de blocos. No momento da iniciao do sistema, a tabela ser criada e existir uma entrada para cada bloco existente. O sistema operacional de tempos em tempos atualiza a tabela com base na utilizao do bloco.(Exemplo 1 em 1 segundo). Na utilizao verificado se o bloco foi ou no referenciado, e caso no tenha sido, ser somado "1" no contador de no referncia (CNR ou UIC). Caso o controle do bloco tenha sido alterado, o bit de alterao conter o valor "1". Para liberar blocos, o sistema pesquisar os blocos com maior UIC, e caso o bit de alterao esteja em 1, far uma cpia para o disco antes da liberao. </li> <li> Slide 17 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Execuo com Memria Virtual A memria virtual visualisa o programa atravs de seus endereos virtuais. Ao ser executado, o sistema dever traduzir os endereos virtuais do programa para os endereos reais. A traduo realizada normalmente por dispositivos de hardware (circuitos) que garantem uma alta velocidade na execuo desta tarefa. O programa fisicamente estar residindo na memria real (memria fsica), ou na memria auxiliar (disco). Durante a traduo de um endereo, o sistema poder detectar a ausncia de uma parte do programa na memria, a qual estar no disco e ser rapidamente trazida de volta para a memria, permitindo que o programa continue a execuo. Partes muito utilizadas residiro na memria, e partes pouco utilizadas residiro em disco e somente sero trazidas para a memria quando necessrias. Consequentemente, o programa ocupar uma menor quantidade de memria real, liberando grande parte de memria para que outros programas possam ser executados. </li> <li> Slide 18 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Paginao por Demanda Vantagens Ampla memria virtual: Os programas no se limitam ao tamanho da memria fsica. Uso eficiente de memria: As partes dos programas pouco ou raramente utilizadas, no residiro na memria fsica..Aumento da multiprogramao: A memria virtual possibilita o aumento do nmero de programas em execuo, bem como aumento do tamanho. Desvantagens.Trabalho no produtivo: O sistema operacional para exercer o gerenciamento consumir ciclos de CPU. Thrashing: Caso a demanda de pginas seja muito alta, o sistema passa a gastar muito tempo para resolver atividades de paginao, sendo que este gasto poder coibir a utilizao do sistema pelos programas aplicativos. </li> <li> Slide 19 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Paginao por Demanda SO Memria Real Paginas 4K Memria Auxiliar Slots 4K Tabelas </li> <li> Slide 20 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Paginao por Demanda SO Memria Real Memria Auxiliar Sada de Paginas Retorno de Paginas Sida de Paginas As paginas no esto sendo necessrias, e portanto podem ser liberadas da memria real Retorno de Pagina O programa necessita para continuar a executar de uma pagina que no se encontra na memria. Funcionamento </li> <li> Slide 21 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Mapeamento da Memria Real SO Memria Real 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Tabela de Blocos N Pg Processo UICAlt 1 2 3 4 5 6 7 8 9 25 </li> <li> Slide 22 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Mapeamento da Memria Real SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 A Processo A entra em execuo SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 B Processo B entra em execuo </li> <li> Slide 23 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Mapeamento da Memria Real SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 C Processo C entra em execuo SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 D Processo D entra em execuo SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 E Processo E entra em execuo </li> <li> Slide 24 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Mapeamento da Memria Real Pontos de Reflexo: Sendo um sistema de memria virtual o que dever ocorrer partir deste momento? O que ocorreria se no fosse Gerenciamento de memria virtual? SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 F Processo F entra em execuo </li> <li> Slide 25 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Mapeamento da Memria Real Tabela de Blocos N Pg Proc. UICAlt 1 A 1210 2 A 01 3 A 320 4 A 670 5 A 30 6 B 1021 7 B 761 8 B 50 9 B 260 n 71 SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 </li> <li> Slide 26 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Controle da Memria Real Tabela de Blocos N Pg Proc. UICAlt 1 00 2 A 01 3 A 320 4 00 5 A 30 6 00 7 00 8 B 50 9 B 260 n 71 Liberao de Paginas Menos frequentemente Utilizadas Maiores UIC </li> <li> Slide 27 </li> <li> Gerenciamento da Memria Virtual FATEC - Sistemas Operacionais I Mapeamento da Memria Real Processo F SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Questes: Como ser a alocao de novos programas? Teoricamente seria possvel a carga de um programa ma...</li></ul>