Sistemas Operativos. Gestão de memória. Rui Maranhão (rma@fe.up.pt)



Documentos relacionados
Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória

Gerência de Memória. Paginação

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Gerenciamento de memória

Organização e Arquitetura de Computadores

Arquitetura e Organização de Computadores

Sistemas Operativos I

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Gerenciamento de memória

Gerenciamento Básico B de Memória Aula 07

Sistemas Operacionais

Sistemas Operativos I

Arquitetura de Computadores. Sistemas Operacionais IV

Gestão de Memória. Algoritmos de Gestão de Memória

Algoritmos de Gestão de Memória

Gestão de Memória. Algoritmos de Gestão de Memória

Algoritmos de Gestão de Memória

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Departamento de Engenharia Informática. Gestão de Memória. Parte II Algoritmos

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Capítulo 4 Gerenciamento de Memória

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Capítulo 4 Gestão da memoria

Infraestrutura de Hardware. Memória Virtual

Gestão de Memória. DCC/FCUP Fernando Silva Sistemas de Operação 1

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Sistemas Operacionais I

Cap. 10 Gerência de Memória Virtual 1

ARQUITETURA DE COMPUTADORES II

Gestor de Processos Núcleo do Sistema Operativo

Sistemas Operacionais

AULA 13 - Gerência de Memória

Exercícios Gerência de Memória

Memória cache. Prof. Francisco Adelton

Programação de Sistemas

SISTEMAS OPERACIONAIS

Componentes de um Sistema de Operação

4) Abaixo está representado o nó_i do arquivo SO.txt em um sistema UNIX.

Entradas/Saídas. Programação por espera activa Programação por interrupções

Capítulo 8: Gerenciamento de Memória

O Manual do ssc. Peter H. Grasch

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Exercícios Gerência de Memória

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Arquitetura e Organização de Computadores

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual

Gerência de processos Estudos de caso - BSD Unix

Sistemas Operacionais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Sistemas Processadores e Periféricos Aula 9 - Revisão

Arquitetura de Sistemas Operacionais

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

Gerência do Sistema de Arquivos. Adão de Melo Neto

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Modos de entrada/saída

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Sistemas Operacionais. Prof. André Y. Kusumoto

Organização de um Sistema Operativo

Nível da Arquitetura do Conjunto das Instruções

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

AULA 16 - Sistema de Arquivos

Sistemas Operacionais

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Componentes de um Sistema de Operação

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

Sistemas Operacionais

SISTEMAS OPERACIONAIS

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Akropole Catequista. Todos os Ficheiros no Akropole Catequista trabalham com uma simples barra de edição, com 4 botões:

Sistema de arquivos. Dispositivos com tecnologias variadas. CD-ROM, DAT, HD, Floppy, ZIP SCSI, IDE, ATAPI,... sistemas de arquivos em rede

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Administração de Memória

Gerência do Processador

Gestor de Processos. Gestor de Processos

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

Sistemas de Arquivos. Arquivos e Diretórios Características e Implementação Tadeu Ferreira Oliveira - tadeu.ferreira@ifrn.edu.br

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013

Máquina de estados UNIX O

Sistemas Operacionais

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução à Computação: Sistemas de Computação

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Memória. Espaço de endereçamento de um programa Endereços reais e virtuais Recolocação dinâmica Segmentação

1 Introdução. 2 Exemplo de aplicação

Tudo o que você precisa saber sobre cartões de memória

Transcrição:

Sistemas Operativos Gestão de memória Rui Maranhão (rma@fe.up.pt)

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!

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

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

Monoprogramação

Multiprogramação com partições fixas

Recursos: limitações recursos de um computador são limitados memória impressora CPU solução virtualização dos recursos

Memória virtual elimina restrição física imposta pelo tamanho da memória física

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

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

Swapping a alocação de memória muda com processos que são carregados processos que são libertados

Swapping Alocação para segmento de dados crescente Alocação para segmento de dados e stack crescente

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)

Gestão com bitmaps zona de memória com 5 processos e 3 buracos bitmap correspondente semelhante a uma lista ligada

Gestão com lista ligadas

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)

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

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

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

Paging Em geral, os sistemas de memória virtual usam paging

Paging a relação entre endereços virtuais e físicos é dado por uma tabela

Paging operação da MMU com 16 páginas de 4KB

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)

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!

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ê?

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

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

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

Rejeição de páginas relógio

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)

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

WSClock

Rejeição de páginas Algoritmo Óptimo NRU (não usado recentemente) FIFO Segunda Oportunidade Relógio LRU NRU Aging Working set WSClock Propriedades Inexequível. Padrão para comparação. Aproximação grosseira. Leva à rejeição de páginas importantes. Melhoramento do FIFO. Solução realista. Muito bom. Implementação exacta difícil. Aproximação grosseira do LRU. Aproximação boa e eficiente do LRU. Implementação ineficiente. Aproximação boa e eficiente.

Rejeição de páginas Algoritmo Óptimo NRU (não usado recentemente) FIFO Segunda Oportunidade Relógio LRU NRU Aging Working set WSClock Propriedades Inexequível. Padrão para comparação. Aproximação grosseira. Leva à rejeição de páginas importantes. Melhoramento do FIFO. Solução realista. Muito bom. Implementação exacta difícil. Aproximação grosseira do LRU. Aproximação boa e eficiente do LRU. Implementação ineficiente. Aproximação boa e eficiente.

Rejeição de páginas Algoritmo Óptimo NRU (não usado recentemente) FIFO Segunda Oportunidade Relógio LRU NRU Aging Working set WSClock Propriedades Inexequível. Padrão para comparação. Aproximação grosseira. Leva à rejeição de páginas importantes. Melhoramento do FIFO. Solução realista. Muito bom. Implementação exacta difícil. Aproximação grosseira do LRU. Aproximação boa e eficiente do LRU. Implementação ineficiente. Aproximação boa e eficiente.

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...

Sistemas paginados aspectos de concepção de alocação local e global controlo de carga (thrashing) tamanho das páginas...

Alocação como deverá ser a memória alocada entre os processos em execução?

Alocação

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

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

Tamanho de páginas determinado pelo hardware (geralmente) não existe um tamanho ideal

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)

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)

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!

Páginas partilhadas em grandes sistemas multi-programados é comum vários utilizadores usarem o mesmo programa ao mesmo tempo

Bibliotecas partilhadas em sistemas operativos modernos, várias bibliotecas são partilhadas por vários processos

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

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?

Estrutura de um programa a paginação é transparente para ao programador mas deve ser tido em conta! por exemplo:

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

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

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

Backup de instruções

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

Paging-out

Segmentação

Segmentação

Segmentação vs. Paging

Fragmentação

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)

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

UNIX Gestão de memória

Unix - gestão de memória Unix, implementação sobre arquitecturas diferentes dois grupos de implementação segmentação com swapping paginação

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

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

Paginação um processo têm inicialmente 3 regiões código, dados, e stack cada região tem uma tabela de páginas

Tabela paginação/descritores de blocos de disco

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

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

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

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

fork

Tratamento de copy-on-write