Sistemas Computacionais - Técnica de memória virtual: paginação e segmentação

16.75k views3751 WordsCopy TextShare
UNIVESP
univesp.br Eixo de Computação - COM210 Univesp - Universidade Virtual do Estado de São Paulo Profes...
Video Transcript:
E aí [Música] o Olá alunos bem-vindos a mais uma aula de sistemas computacionais semana 3 a última aula dessa semana tá bom Espero que vocês aproveitem aí o que a gente vai conversar bom pessoal nessa aula nós vamos falar de duas técnicas de memória virtual que é paginação e segmentação na primeira aula desta semana nós falamos sobre o sistema operacional e definimos que esse sistema ele tem dois principais objetivos um deles é fazer uma interface sobre o hard para a gente trabalhar com os nossos aplicativos os Nossos programas e outro é o gerenciamento de recursos
e controle de execução aí de processos pela CPU né a gente falou primeiramente o escalonamento desse processo né E aí depois a gente seria o como a memória entra nessa questão né e uma maneira de trabalhar com essa memória tendo mais capacidade né é agregar nessa hierarquia de memórias a memória de disco a nossa memória secundária então a técnica ela tenta fazer essa agregação né de uma maneira aí que o tempo de acesso não seja muito diferente de um acesso a memória principal dentro da da questão de memória virtual a gente vai falar hoje das
técnicas de paginação e técnica de segmentação sobre a paginação né paginação na verdade ela quebra o tamanho do processo né aquele processo lá que a gente falou nas aulas passadas né que estão os Nossos programas é a ideia de pegar os Nossos programas e quebrar esses programas né em processos esse processo vão ser rodados na CPU então a paginação ela quebra esses processos esses programas em páginas que são de tamanhos fixos mais ou menos naquele exemplo que eu usei da aula passada de 4 Canais e o endereço amento virtual é dividido no que a gente
chama de páginas virtuais né e o legal dessas páginas aquelas não tem aí tipo se dados diferentes né na mesma página então a página aqui ela desempenha um papel semelhante ao bloco nas creches né como se fosse páginas de livros né você imagina aqui o processo eu livro né E você tem as páginas né É todas as páginas se você pensar numa maneira simplificada né Elas podem ser de tamanhos iguais né em bytes né É quer que no espaço de endereçamento virtual ou até mesmo do espaço físico quanto menores forem as páginas mais cuidadoso é
o controle dos endereços né que estão e não estão carregados em memória mas também maior é informação necessária para traduzir os endereços né quanto menor for as páginas né mas endereços mais o tempo né Maior custo de mapeamento a gente vai ter né E esses tempos aí eles vão causando ao ver redes no sistema por outro lado se você pensar em muitas é páginas muito grandes né com grandes capacidades é isso também pode afetar o desempenho porque a simples falta de uma palavra e um determinado endereço vai obrigar a carregar toda a página que ela
pertence e aí vai aumentar concorrência entre páginas pela utilização da memória física que a gente tiver trabalhando o tamanho da página a utilizar né o tamanho da quebra aí da nossa técnica de paginação né ele Depende de vários fatores né também Incluindo aí o tamanho dos espaços que a gente vai ter para fazer endereçamento os tipos de programas que a gente vai estar trabalhando né então o tamanho típico é esse que a gente colocou em 4K bike a segmentação é uma outra técnica de de memória virtual que Ela utiliza a quebra das páginas em blocos
de tamanhos variáveis / tipo então aí cada segmento acaba tendo um tipo de dar bom então falando mais um pouquinho né conceitos da paginação né a página é humanidade Então nesse caso de tamanho fixo a gente vai usar o tamanho de 4 cabaites aí como o tamanho típico né que tá lá no nosso dispositivo de armazenamento secundário no nosso disco né na nossa hd-a e a gente chama de página o que fica do lado do disco e freio o que fica do lado da memória RAM então nós temos lá no disco secundário as páginas que
correspondem a frame sair na memória RAM né além desses dois conceitos de páginas Extremis nós temos o conceito de tabela de página e aí a gente vai ver no próximo de slides que são estruturas de dados para mapear uma página que tá no disco no frame que tá na memória RAM então cada processo aí lembra voltando os processos são os programas aí que são escalonados para a cada processo acaba tendo uma tabela né a sua tabela de páginas Então nesse slide né você vai ver aí do lado direito né É até estranho né ou moldura
de página né como foi traduzido ela fica na memória RAM né E ela é que é o endereçamento físico a tabela do lado esquerdo é a tabela de páginas virtuais indisco assim uma página aí como a gente tá usando no Exemplo né virtual a primeira delas aí é de 0 a cá né E fica na terceira posição da memória RAM né Se vocês estão vendo lá tem 12 nessa unidade é e esse 2 corresponde né a posição dela lá no nosso lado físico né na nossa memória RAM então aqui é 0 1 e 2 Então
ela tem essa certa aí tá mostrando um mapeamento no terceiro endereço aí da memória RAM a posição a página de quatro a cá ela fica na primeira posição né então a página é de quatro a oito cá né ela fica esse um tá mostrando aqui a primeira posição né que é na verdade é a segunda começando do zero o MM que é o Memories mais Nascimento senhor né né que era aquele rádio que faz esse mapeamento ele que vai fazer isso ele usa o endereço virtual da tabela de páginas né E para falar um pouquinho
sobre esse endereço né esse endereço virtual ele é composto por um bit chamado the beach de residência que ele está na memória principal ou não isso que ele vai estar indicando é um bit de proteção né que para dizer o tipo de acesso que eu vou ter se leitura escrita ou dois né ele tem o endereço tem um bit é de modificação que vai dizer se a página foi modificada ou não um bit de referência que vai indicar se a página tá sendo referenciada o bit De Cash que vai dizer se o sistema de Cash
deve ser habilitado né mas os principais Beats são os Beats de validade né ver que indica se a página virtual correspondente está carregado na memória é física né Aí se vê igual a um a página Então vai estar carregada na memória e o número é da página virtual é convertido número da página física é que vão usar e os 12 vídeos indicado nessa entrada aí da tabela o número da página fixa Física ele vai ser obtido Se você pegar concatenar esse número ao deslocamento dentro da página para obter aí o endereço físico final agora se
esse bit eu usei igual a zero é esse bicho de validade significa que a página virtual ela não tá carregada na memória principal né E aí a gente tem o que a gente chama de Daisy flor quer dizer o que é uma falha né de página né falta página é uma falta de página então aí é gerada uma exceção pelo sistema então com isso Vocês conseguem ver aí o que é cada uma linha cada uma das Linhas desta tabela de página para ficar mais claro né a figura ela ilustra o princípio aí da tradução de
o endereço virtual né para o endereço físico assumindo o espaço aí virtual de endereçamento de 32 bits né de 0 a 31 os dados nesse exemplo eles sugerem que esse é um processador de 32 bits né que um arquitetura de 32 bits é que é o tamanho aí do nosso endereço né É o barramento de endereço físico ele vai trabalhar com 24 bits né os 12 bits menos significativos do endereço eles são os bicos que a gente chama de beach deslocamento né que aí é o deslocamento do endereço dentro da tabela o espaço de endereçamento
virtual ele tem um mega vai né E que de páginas virtuais né se você for pensar nesse valor é 2 elevado a vir né enquanto espaço físico aí por isso que a memória virtual ela acaba sendo maior ele tem aí 4K né de páginas físicas como a gente falou em geral uma página tem 4K é o mecanismo de tradução de endereço então ele vai ma pa esse esse tamanho aí esse 1 m de páginas virtuais em 4K de páginas físicas né então isso é das um mega de páginas virtuais só 4K de cada vez que
vai poder ser carregada na memória principal é por isso que tem esse fluxo aí de sobe página e desce página é para conseguir aí é só ocupar um carro é quatro anos tudo bem É no próximo slide a gente vai falar da questão de busca né é dentro da questão da tabela de endereço virtual a gente tem que fazer busca desses endereços né E aí é buscar ela pode ser sequencial ou ela pode ser binária né aí vocês viram aí os algoritmos de busca né É tanta sequencial quanto a binária são bastante lentas nela vai
gerar e um homem Red o ideal seria o endereço virtual na tabela de página ele funcionar como índice né E aí essa tabela apesar de ocupar espaço a busca seria muito mais facilitada né Outra coisa importante da gente pensar é que a gente tem paginação por Demanda né O que significa a páginas ela só são carregadas quando são referenciadas né o programa começa a execução com nenhuma das páginas carregadas na memória principal assim que tiver uma falta de página né um peixe fogo o sistema então ele Copie as páginas necessárias né para memória e também
existem técnicas que trabalham né com paginação antecipada E aí essa técnica ela vai prever quais são as próximas páginas né E aí tentar minimizar a exceção da falta de página né né Por exemplo após a leitura de uma página para tratar de uma falha de página o sistema operacional pode ler as próximas páginas mesmo ainda não sendo necessário né pensando em usar aquela questão da localidade tá se um processo então é terminado o sistema operacional pode atrasar a liberação de paz em casa usuário decide executar o programa de novo é interessante você pensar nessas duas
ideias paginação antecipada ou por Demanda para tentar diminuir Aí esse custo Quando acontecem a busca né tentar se adiantar um dos problemas que ocorre nessa nessa questão de você fragmentar dividir né em página é a fragmentação interna né ela ocorre quando a memória foi fragmentada utilizada Mas ficam sobrando espaços internos na memória né E aí volta Aquele caso que eu citei né páginas com tamanhos menores elas podem gerar menos desperdício né quer dizer menos fragmentação Point e a questão da busca né Então você vai ter um troço E aí nesse caso a leitura é menos
difícil por causa da busca em tabelas grandes e mais tempo para carregar em páginas se você tem um oposto é você pode ter mais desperdício Mas você vai ter uma busca mais otimizada né então é é interessante pensar nesse pedofe quando tiver trabalhando aí na questão da paginação é outra que outra definição que eu queria falar para vocês a questão da fragmentação né a gente fica passando aí os nossos desfragmentadores né É porque tem fragmentação interna e outra outro termo que a gente ouvir bastante a questão da fragmentação externa né que era verdade a soma
de todas as fragmentações internas A então é o sistema tente lidar com essa questão da fragmentação e a outra técnica que a gente citou é a técnica de segmentação né a segmentação ela permite você trabalhar com blocos de tamanhos variáveis né E que a gente vai ver aí é a questão seguimentos né e é principal vantagem disso é permitir você definir características né aí você pode definir característica de proteção definição de acesso aos espaços né de uma forma adaptada a cada um dos segmentos que o programa definir enfeite você trabalhar como na paginação com tamanhos
fixos né Porém esse mecanismo ele não é transparente para programação E aí acaba gerando problemas de implementação né E aí ele acaba sendo menos geral - genérico do que a paginação né e também uma maneira que os sistemas Tem trabalhado é combinar né paginação com segmentação né eu queria os dois né pagina se alimenta os grandes neoci alimentação pode nada né isso é uma coisa bastante comum hoje nos sistemas operacionais tá é a e em relação agora ao armazenamento ainda de páginas na tabela de páginas né é uma coisa a se pensar é onde armazenar
essa tabela de páginas aí que faz esse mapeamento né Você pode ter pensar em armazenar por exemplo na hum né na memória principal O problema é que você aí vai ter dois acessos para receber uma informação um acesso para tabela de página e outro acesso para memória né propriamente dita E aí você tendo esses dois acessos você gera um overhand E aí uma ideia é que a gente vai apresentar na aula de hoje eu usar o que a gente chama de tlb que é uma transferir a área de transferência né que na verdade é uma
cast de tabela de página tá é até lhe dela acaba ficando com as páginas mais usadas no período de tempo aí então em vez de ir buscar na memória ele busca primeiro na a série B depois senão aí ele vai para a tabela de página daí a gente tem uma economia aí de tempo uma outra ideia de armazenar tabela de páginas né seria nos registradores mas a gente sabe dos problemas aí tanto dos registradores e dos creches né da questão do tamanho limitado então mais comum né é usar a tlb então pela própria definição a
intelli b translation luxside buffer é um hardware do tipo memória associativa que vai fazer uma espécie de Cash da tabela de página e acaba ficando com as páginas que estão mais usadas no período de tela né o primeira coisa que o sistema faz é buscar na tlb se ele não acha natele de aí ele vai para a tabela de página né conforme aí a gente vai ver no algoritmo do próximas páginas né É É e deixe tio mapeamento esteja presente na tlb né a conversando o endereço virtual para o endereço físico ele consegue ser realizado
aí no tempo reduzido e tem acesso da memória né Caso não esteja né você vai gerar o que a gente chama de ter IBM ela quer dizer o que é preciso você então percorrer a tabela de páginas né Lógico acessando a memória até você conseguir obter a página física aí ocasião em que se memoriza aí esse mapeamento na tlb né o próximo acesso a esse endereço de página ele vai ser muito mais rápido né porque ele já está carregado ao contrário das outras quer é que é x né É até liberar o conjunto aí de
bits né é um dicionário que tem limites de entrada e esse conjunto é memorizado de maneira a fornecer o conjunto de bits de Sá em qualquer computador suporta a esse execução simultânea de vários processos como a gente viu na aula passada e aí cada um acaba usando a mesma faixa de endereços virtuais né Cada processo tem essa tabela de página porém até LB ela é compartilhada por todos os processos né Esse dicionário é esse conjunto de informações mais utilizadas né E aí o número de página virtual acaba no sendo suficiente para identificar uma página e
É nesse slide vocês vão conseguir ver né A questão da do algoritmo que Eu mencionei para vocês né aqui a gente tem um algoritmo chamado de com o mesmo nome né na verdade é um fluxograma né é onde ele mostra como o trabalho aí essa busca né como acontece essa música Primeiro quando precisa da página procura-se natele B seu encontro na tlb eu coloco o endereço Mas o deslocamento e acesso diretamente senão eu tenho que acessar a tabela de página adiciono o frame correspondente no endereço e aí tem dois tipos de falha que podem acontecer
né o que eu tinha falado para vocês né o tele bemis esse Terry bemis ele pode ser do tipo soft de mim que a página não se encontram na tele B mas está na memória principal aí e alisa a pele b e o Card Miss que a página não está na memória é física nem natele B né então você precisa trazer do disco né Aham e trazer do disco né para Hum e até liberar E aí isso vai ser um pouco mais lento né Acho que esse fluxograma ele acaba explicando melhor essa questão do uso
da tlb né é a problema de ter que decidir qual página tem que sair né quando a memória física está ocupada um programa faz referência a uma página que não está carregada na memória normalmente usa-se a política de substituição né do tipo aqui tem sido usada ultimamente né as mais usadas ultimamente né Considerando que as páginas com menos utilização né Será também menos provável de ser chamada né é necessária normalmente a informação e para esse essa essa decisão né resumo esse aquela informação que tem lá no endereço no Beach de utilização né então você pode
usar o bit de utilização reflexivity é em cada entrada da tabela de páginas né que periodicamente o sistema operacional desativa em todas as entradas e o Rider ativa né em uma determinada entrada a cada vez que é um um acesso a uma respectiva página né então em resumo pessoal quando o processo é criado o sistema operacional né ele cria as páginas virtuais que ele necessita em um espaço aí que ele chama disso Whats fácil quando a página é referenciada né pelo processo ela é carregada na memória principal se tiver que sair da memória principal ela
vai voltar lá no espaço de Swap isso significa o E aí né como é chamada aí troca de contexto de página né entre a memória principal e o disco né aquele espaço que tá ali no meio né como se fosse como a gente citou a cast que fica aí entre os dois é e continuando então é e em relação à integração das memórias não é isso que a gente falou nessas últimas três aulas né a abstração da ideia da memória integrada né ela deve ser feita de maneira automática né a gente não deve ter mais
custo para isso os mecanismos que a gente falou né De Cash sem aulas em semanas passadas né e de memória virtual nessa aula eles precisam cooperar é para conseguir implementar essa ministração de integração né Então veja que as memórias existem fisicamente separadas né em alguns casos e o hardware eo software não é o sistema operacional junto eles criam essa ideia essa abstração né sendo lá a CPU com seus registradores a memória principal EA Cash com seus níveis aí fazendo essa transição aí de informações né esse com o futuro né Depois do outro lado aqui a
gente vai ter na questão da tabela de páginas né a tlb a memória principal e o disco né E aí tentando diminuir esse acesso a disco de modo que a gente tem impressão de quando eu tá trabalhando com os nossos aplicativos aí as nossas informações guardadas não-voláteis né que elas rapidamente chegou no nosso computador né Então essa é a ideia da Integração da memória não é essa ideia desse trabalho de gerenciamento de memória aí memória virtual que o sistema operacional faça é só para nos alongar né Aqui tem uma figura que ilustra a forma como
esses mecanismos aí estão integrados e se complementam Né desde o pedido de acesso ao endereço virtual passando para o endereço físico né E aí aonde esse endereço é virtual está mapeado até obter o valor a pretendida essa é uma figura e lógico que ilustrativa nela não tem um grande Rigor aí de representação a é mais para vocês entenderem essa questão de integração é o caminho mais rápido né conseguido é usando aí o mapeamento virtual físico se ele estiver presente aí na na tlb né na nossa na nossa supercast aí trânsito né a página referenciada se
ela tiver carregada na memória principal né e o bloco estiver aí dentro da nossa memória Cash né esse é o caminho mais rápido que existe né E isso que o sistema operacional tenta fazer né otimizar de uma maneira aqui os nossos aplicativos e nós usuários aí não percebemos esse acesso a disco né se ele seja tão rápido como o acesso a memória principal bom pessoal aqui tem a bibliografia é usada nessa semana né É principalmente Delgado e o tannenbaum e são nossos livros aí base o Stálin também tem algumas figuras E aí o Capítulo 8
a gente cocô algumas coisas então vocês vão ver aqui que é Pode parecer bastante mas a gente tá aí fragmentando os capítulos e quem quiser estudar mais ainda sobre esse assunto né existe um livro do tannenbaum sobre esse sistema operacional né que é o livro aí bastante clássico da área de sistema operacionais então era era isso pessoal com essa aula eu encerro essa semana 3 É espero que vocês tenham aproveitado essa grande visão essa grande revisão que a gente fez de sistema operacional entendido essa questão de como trabalhar a memória aí para auxiliar nesse gerenciamento
e controle de recursos que o sistema operacional faz né Principalmente nessa a integrar essas diferentes memórias aí de modo a trazer à memória ideal para o projetista né mais rápida não-volátil né um grande capacidade de armazenamento Obrigado a todos e até a próxima semana pessoal é E aí [Música]
Copyright © 2024. Made with ♥ in London by YTScribe.com