Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor...
-
Upload
duongnguyet -
Category
Documents
-
view
217 -
download
0
Transcript of Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor...
![Page 2: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/2.jpg)
Gestão de memória
• idealmente a memória seria
• grande
• rápida
• não volátil
• contudo, na realidade existem limitações físicas!
![Page 3: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/3.jpg)
Portanto...
• hierarquia da memória
• pouca memória rápida (cara) - cache
• velocidade média - memória principal
• gigabytes de memória lenta - discos
• hierarquia gerida pelo gestor de memória
![Page 4: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/4.jpg)
Gestor de memória
• gestor de memória faz parte do SO
• responsável por gerir de forma eficiente a memória
• manter informação sobre partes da memória em uso
• alojar (bem como remover) memória para processos quando necessário
![Page 5: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/5.jpg)
Monoprogramação
![Page 6: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/6.jpg)
Multiprogramação
• com partições fixas
•
![Page 7: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/7.jpg)
Recursos: limitações
• recursos de um computador são limitados
• memória
• impressora
• CPU
• solução
• virtualização dos recursos
![Page 8: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/8.jpg)
Memória virtual
• elimina restrição física imposta pelo tamanho da memória física
•
![Page 9: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/9.jpg)
Gerir memória
• tipos de decisões que o sistema operativo tem de tomar em relação à memória principal
• reserva
• transferência
• substituição
![Page 10: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/10.jpg)
Recolocação e protecção
• incerteza sobre o endereço de carregamento do programa
• endereço de variáveis, e das rotinas não pode ser absoluto
• um processo não pode sobrepor outro
• uso de valores de limites
• endereços adicionais à base
• endereços superiores ao limite são erros
![Page 11: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/11.jpg)
Swapping
• a alocação de memória muda com
• processos que são carregados
• processos que são libertados
![Page 12: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/12.jpg)
Swapping
• Alocação para segmento de dados crescente
• Alocação para segmento de dados e stack crescente
![Page 13: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/13.jpg)
Libertar memória
• quando a memória é atribuída de forma dinâmica, o sistema operativo têm de gerir o processo
• 2 formas de manter o uso de memória
• bitmasks
• listas ligadas (free lists)
![Page 14: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/14.jpg)
Gestão com bitmaps
• zona de memória com 5 processos e 3 “buracos”
• bitmap correspondente
• semelhante a uma lista ligada
![Page 15: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/15.jpg)
Gestão com lista ligadas
![Page 16: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/16.jpg)
Algoritmos de transferência
• Existem três situações em que é necessário transferir dados
• a pedido (on request)
• por necessidade (on demand)
• por antecipação (prefetching)
![Page 17: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/17.jpg)
Swapping / paging
• quando é necessário libertar espaço na memória física o SO copia páginas para disco
• terminologia: swapping vs. paging
• granularidade
• minimizar latência: pre-fetching
• traz páginas antes de serem pedidas
![Page 18: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/18.jpg)
Algoritmos de substituição segmentos
• possíveis critérios para decidir qual o processo a transferir para disco
• estado e prioridade
• tempo de permanência na memória principal
• dimensão do processo
![Page 19: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/19.jpg)
Reserva de memória
• paginação (paging)
• muito simples, basta encontrar uma página livre numa Lista de Páginas Livres
• segmentação
• tamanho variável dos segmentos torna complexo a reserva do espaço
• libertação exige recompactar segmentos
![Page 20: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/20.jpg)
Paging
• Em geral, os sistemas de memória virtual usam paging
•
![Page 21: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/21.jpg)
Paging
• a relação entre endereços virtuais e físicos é dado por uma tabela
![Page 22: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/22.jpg)
Paging
• operação da MMU com 16 páginas de 4KB
![Page 23: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/23.jpg)
Paging - tornar mais rápido
• em sistemas de paginação
• o mapeamento entre os endereços de memória virtual e físicos tem de ser rápido
• se o endereços virtuais forem grandes, a tabela de páginas terá de ser grande
• algoritmo mais usado: translation lookaside buffers (TLB)
![Page 24: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/24.jpg)
Rejeição de páginas
• um page fault origina
• decidir que página em memória rejeitar
• criar espaço para uma nova página
• uma página modificada tem de ser escrita
• convém rejeitar páginas frequentemente usadas
• para evitar overheads!
![Page 25: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/25.jpg)
Rejeição de páginas
• situação óptima: rejeitar a página que será usada mais tarde
• impraticável
• aproximado por estimativa
• histórico de execuções
• também é impraticável. Porquê?
![Page 26: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/26.jpg)
NRU
• cada página tem 1 bit de acesso e 1 de escrita
• páginas são classificadas
1. não acedida, não modificada
2. não acedida, modificada
3. acedida, não modificada
4. acedida, modificada
![Page 27: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/27.jpg)
FIFO
• mantém uma lista de páginas em memória
• segundo a ordem que foram carregadas
• página no topo da lista é rejeitada
• desvantagem
• página há mais tempo em memória pode também ser a mais usada
![Page 28: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/28.jpg)
Segunda oportunidade
• ordem FIFO
• se a página mais antiga tiver sido acedida, não é rejeitada
• é limpo o bit de acesso e colocada no fim da lista
![Page 29: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/29.jpg)
Rejeição de páginas relógio
![Page 30: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/30.jpg)
LRU
• menos usada recentemente (LRU)
• eficaz segundo o princípio de localidade
• latência associada à implementação
• utilização de um contador por página
• quando atingir um valor máximo, passa para a lista das livres (e/ou modificadas)
![Page 31: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/31.jpg)
Working Set
• o conjunto de páginas usadas pelo processo corrente é designado de working set
• manter em memória páginas do processo que está a ser executado
![Page 32: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/32.jpg)
WSClock
![Page 33: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/33.jpg)
Rejeição de páginas
Algoritmo PropriedadesOptimo Inexequıvel. Padrao para comparacao.
NRU (nao usado recentemente) Aproximacao grosseira.FIFO Leva a rejeicao de paginas importantes.
Segunda Oportunidade Melhoramento do FIFO.Relogio Solucao realista.LRU Muito bom. Implementacao exacta difıcil.NRU Aproximacao grosseira do LRU.Aging Aproximacao boa e eficiente do LRU.
Working set Implementacao ineficiente.WSClock Aproximacao boa e eficiente.
![Page 34: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/34.jpg)
Rejeição de páginas
Algoritmo PropriedadesOptimo Inexequıvel. Padrao para comparacao.
NRU (nao usado recentemente) Aproximacao grosseira.FIFO Leva a rejeicao de paginas importantes.
Segunda Oportunidade Melhoramento do FIFO.Relogio Solucao realista.LRU Muito bom. Implementacao exacta difıcil.NRU Aproximacao grosseira do LRU.Aging Aproximacao boa e eficiente do LRU.
Working set Implementacao ineficiente.WSClock Aproximacao boa e eficiente.
![Page 35: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/35.jpg)
Rejeição de páginas
Algoritmo PropriedadesOptimo Inexequıvel. Padrao para comparacao.
NRU (nao usado recentemente) Aproximacao grosseira.FIFO Leva a rejeicao de paginas importantes.
Segunda Oportunidade Melhoramento do FIFO.Relogio Solucao realista.LRU Muito bom. Implementacao exacta difıcil.NRU Aproximacao grosseira do LRU.Aging Aproximacao boa e eficiente do LRU.
Working set Implementacao ineficiente.WSClock Aproximacao boa e eficiente.
![Page 36: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/36.jpg)
Condição de Belady
• para a mesma sequência de referências, as substituições devem diminuir com o aumento de memória central
• e.g., LRU
• FIFO não obedece à condição...
![Page 37: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/37.jpg)
Sistemas paginados
• aspectos de concepção de
• alocação local e global
• controlo de carga (thrashing)
• tamanho das páginas
• ...
![Page 38: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/38.jpg)
Alocação
• como deverá ser a memória alocada entre os processos em execução?
•
![Page 39: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/39.jpg)
Alocação
![Page 40: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/40.jpg)
Controlo de carga
• mesmo usando bons algoritmos, pode ainda ocorrer thrashing
• quando frequência de page faults indica
• alguns processos precisam de mais memória
• mas nenhum pode ceder memória
![Page 41: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/41.jpg)
Controlo de carga
• solução
• reduzir número de processos que competem por memória
• passar processos para disco e dividir as páginas que lhes estavam atribuídas
• rever grau de multi-programação
![Page 42: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/42.jpg)
Tamanho de páginas
• determinado pelo hardware (geralmente)
• não existe um tamanho ideal
![Page 43: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/43.jpg)
Tamanho de páginas
• Páginas pequenas
• menos fragmentação interna
• melhor adequação a várias estrutura de dados e código
• menos partes de programação não usados em memória
• mas, mais páginas (tabela de páginas maiores)
![Page 44: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/44.jpg)
Tamanho de páginas
• Overhead devido às tabelas e à fragmentação
• overhead = ((s . e) / p) + (p / 2)
• s - tamanho médios dos processos (bytes)
• p - tamanho das páginas
• e - entrada na tabela de páginas
• Valor óptimo quando p = sqrt(2 . s . e)
![Page 45: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/45.jpg)
Separação
• geralmente computadores têm um único endereço de memória para programas e estrutura de dados
• Se for suficiente grande, tudo funciona bem
• mas, é geralmente pequeno!
![Page 46: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/46.jpg)
Páginas partilhadas
• em grandes sistemas multi-programados é comum vários utilizadores usarem o mesmo programa ao mesmo tempo
![Page 47: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/47.jpg)
Bibliotecas partilhadas
• em sistemas operativos modernos, várias bibliotecas são partilhadas por vários processos
![Page 48: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/48.jpg)
Limpeza
• paginação funciona melhor quando existem muitas páginas livres
• Portanto, mecanismos de ‘limpeza’ de páginas que não estar a ser utilizadas pode melhor a performance
• page daemon
![Page 49: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/49.jpg)
Pré-paginação
• paginação a pedido conduz a um número elevado de faltas de páginas
• pré-paginação: tentativa de eliminar faltas de páginas
• carregar para a memória mais páginas do que a necessárias
• Será uma boa ideia?
![Page 50: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/50.jpg)
Estrutura de um programa
• a paginação é transparente para ao programador
• mas deve ser tido em conta!
• por exemplo:
•
![Page 51: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/51.jpg)
Estrutura de um programa
• selecção cuidadosa das estruturas de dados pode reduzir o número de faltas de páginas
• stack - boa localidade de referência
• hash tables - má localidade de referência
• apontadores - tende a introduzir má localidade
![Page 52: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/52.jpg)
Aspectos de implementação
• SO intervém 4 vezes na paginação
• criação do processo
• execução do processo
• na page fault
• fim de execução do processo
![Page 53: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/53.jpg)
Aspectos de implementação
• tratamento da page fault
• o HW interrompe o kernel
• são salvaguardados os registos
• SO determina a página virtual necessária
• SO valida endereço e procura page frame
• se a página foi alterada escreve-a para disco
![Page 54: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/54.jpg)
Backup de instruções
![Page 55: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/55.jpg)
Fixação de páginas
• Alguns frames podem ser “fechados” (locked)
• páginas não poderão ser substituídas!
• Exemplos
• kernel (estruturas de dados), processos com tempos de execução críticos, buffers de I/O
![Page 56: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/56.jpg)
Paging-out
![Page 57: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/57.jpg)
Segmentação
![Page 58: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/58.jpg)
Segmentação
![Page 59: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/59.jpg)
Segmentação vs. Paging
![Page 60: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/60.jpg)
Fragmentação
•
![Page 61: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/61.jpg)
Reserva de segmentos
• best-fit (o menor possível)
• worst-fit (o maior possível)
• first-fit (o primeiro possível)
• next-fit (o primeiro possível a seguir ao anterior)
![Page 62: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/62.jpg)
Critérios de escolha de blocos livres: Algoritmo buddy
• A memória livre é devidida em blocos de dimensão b^n
• se b=2, buddy binário
• para satisfazer um pedido de dimensão D, percorre-se a lista à procura de um bloco de dimensão 2^k tal que 2^k-1 < D <= 2^k
• se não for encontrado procura-se um de 2^k+1 que será dividido em duas partes iguais (buddies)
• um deles será dividido até se encontrar um de dimensão 2^k
• se possível, na libertação um bloco é recombinado com o seu buddy
• consegue-se um bom equilibrio entre o tempo de procura e a fragmentação interna e externa
![Page 63: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/63.jpg)
UNIXGestão de memória
![Page 64: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/64.jpg)
Unix - gestão de memória
• Unix, implementação sobre arquitecturas diferentes
• dois grupos de implementação
• segmentação com swapping
• paginação
![Page 65: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/65.jpg)
Transferência (Swapping)
• arquitecturas segmentadas
• regiões carregadas contiguamente
• transfere para disco processos bloqueados
• existem 4 situações que provocam transf.
• fork, brk (expande segmento), crescimento da stack, carregar processos que estavam swap-out
![Page 66: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/66.jpg)
Swapper
• processo que efectua as transferências de segmentos entre memória principal e secundária
• área especial do disco reservado para os segmentos retirados de memória
![Page 67: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/67.jpg)
Paginação
• um processo têm inicialmente 3 regiões
• código, dados, e stack
• cada região tem uma tabela de páginas
![Page 68: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/68.jpg)
Tabela paginação/descritores de blocos de disco
![Page 69: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/69.jpg)
Significado dos campos
• P - present
• R - referenced
• M - modificada
• C/W - copy-on-write
• PROT - bits de protecção
• Idade - algoritmo de page stealer
• end. físico da page frame
• num do bloco e num dispositivo
• tipo - swap, demand fill, demand zero
![Page 70: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/70.jpg)
Tabela pfdata
• permite a gestão eficaz das páginas de memória física
• indexada pelo número de página física
• contém
• estado da página
• contador com número de processos
• número de device e block
![Page 71: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/71.jpg)
Substituição de páginas
• aproximação ao algoritmo LRU
• idade da página é mantida na PTE
• page-stealer é acordado quando o número de páginas livres desce abaixo do limite
• percorre as PTE incrementando a idade
• se página for referenciada, idade é anulada
• se página atingir certa idade, marca-a para ser transferida
![Page 72: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/72.jpg)
Criação de um processo
• fork: duplica os segmentos do processo
• não é feita cópia física de memória
• cria nova tabela de regiões para o filho
• dá-lhe a mesma região de código
• copia as regiões de dados e pilha
• percorre PTE do pai e actualiza pfdata e coloca a 1 o bit copy on write
• antes duma página ser escrita
• o sistem copia-a para uma nova página que aloca
• preenche a PTE do processo onde ocorreu a falta com o endereço físico
• só se copia páginas que foram modificadas
![Page 73: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/73.jpg)
fork
![Page 74: Sistemas Operativos - web.fe.up.ptrma/SOPE/at/T11_12_13_14_15.pdf · Gestor de memória • gestor de memória faz parte do SO • responsável por gerir de forma eficiente a memória](https://reader031.fdocumentos.com/reader031/viewer/2022011806/5bea188d09d3f25b278cca58/html5/thumbnails/74.jpg)
Tratamento de copy-on-write