Zeque - Grad. CC1 Sistemas Operacionais Gerenciamento do Espaço Prof. José Queiroz - ZEQUE.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Sistemas Operacionais
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Ambientes Operacionais
ARQUITETURAS DE COMPUTADORES II
Gerenciamento de memória
Gerenciamento de Memória
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado
SSC SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória 3
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Gerenciamento de Memória
Gerência de Memória.
Gerência de Memória Algoritmos de Substituição de Páginas
Arquitetura de Computadores
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Sistemas Operacionais I
Gerência de Memória.
Sistemas Operacionais I
Gerenciamento de Memória
Arquitectura de Computadores II
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Sistemas Operacionais Gerenciamento de Memória
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
SISTEMAS OPERACIONAIS
Gerência de Memória Virtual
Sistemas Operacionais: Memória Virtual
Algoritmo Adaptativo de Substituição de Páginas
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
Capítulo 8: Memória principal
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
SISTEMAS OPERACIONAIS I
ARQUITETURAS DE COMPUTADORES II
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Sistemas Operacionais
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
Capítulo 8: Memória Principal
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
Prof. André Luis M. Silva Hierarquia de Memória Prof. André Luis M. Silva
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Gerenciamento de Memória Sistemas Recentes
Bruno Iran Ferreira Maciel
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Infra-estrutura Hardware
Memória Cache.
Memória Virtual.
Gerência de Memória Sidney Cunha de Lucena Baseado no livro
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
Sistemas Operacionais Gerência de Memória Funções básicas (número, tamanho e segurança) Alocação contígua simples Técnica de overlay Alocação particionada.
Sistemas Operacionais Sistemas de Arquivos Prof. José Queiroz - ZEQUE.
Memória Virtual ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Hierarquia de Memória – Parte 2 Prof. André Luis M. Silva
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
SISTEMAS OPERACIONAIS MEMÓRIA VIRTUAL. INTRODUÇÃO Memória Virtual é um técnica sofisticada e poderosa de gerenciamento de memória, onde a MP e a MS são.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

zeque - Grad. CC1 Sistemas Operacionais Gerenciamento do Espaço Prof. José Queiroz - ZEQUE

zeque - Grad. CC2 Sistemas Operacionais l Gerenciamento do Espaço Plano de Apresentação  Introdução  Armazenamento  Hierarquia de Memória  Memória Real  Memória Virtual  Memória Real x Memória Virtual  Mapeamento de Endereços  Espaço de Endereçamento Virtual  Funcionamento de Programas  Introdução  Relocação  Compartilhamento  Proteção  Objetivos  Estratégias  Particionamento da Memória  Partições Fixas  Partições Variáveis  Tradução de Endereços

zeque - Grad. CC3 Sistemas Operacionais l Gerenciamento do Espaço Plano de Apresentação (cont.)  Suporte de Hardware para a Tradução  buffers de tradução look- aside  registradores base-limite  Organização da Memória  Paginação  Segmentação  Paginação/Segmentação  Multiníveis  Operação em modo Dual  Modo Sistema  Modo Usuário  Swapping  Alocação de Memória  quando carregar?  onde carregar?  quem retirar?  Políticas de Substituição  randômica  FIFO  ótima  não, menos e mais usada recentemente

zeque - Grad. CC4 Sistemas Operacionais l Gerenciamento do Espaço Plano de Apresentação (cont.)  Políticas de Substituição  segunda chance cíclica  relógio de páginas  péssima  Conjunto de Trabalho  Objetivos  Descrição  Outras Características da Paginação

zeque - Grad. CC5 Armazenamento l principal ou primário  usado para guardar instruções e dados de um programa durante o tempo de execução do mesmo l secundário ou on-line  usado para guardar com baixo custo, grandes volumes de programas e dados, tornando-os disponíveis para um pronto processamento l terciário ou off-line  usado para guardar com baixo custo e abundância, grandes volumes de programas e dados não disponíveis para um pronto processamento

zeque - Grad. CC6 Hierarquia de Memória Caching x Arquivamento Caching x Arquivamento REGISTRADORES MEMÓRIA CACHE MEMÓRIA PRINCIPAL MEMÓRIA SECUNDÁRIA MEMÓRIA TERCIÁRIA arquivamento caching

zeque - Grad. CC7 Hierarquia de Memória Quanto mais baixo for o nível da memória: Quanto mais baixo for o nível da memória: l Tempo de Acesso  menor é o tempo de acesso l Velocidade de Acesso  maior é a velocidade de acesso l Capacidade de Armazenamento  menor é a capacidade de armazenamento l Custo de Armazenamento  maior é custo por bit armazenado

zeque - Grad. CC8 Hierarquia de Memória Tabela Tabela

zeque - Grad. CC9 Memória Real l também conhecida como Memória Principal ou Memória Primária l memória contínua suprida pelo hardware l endereços disponíveis na memória principal são chamados de endereços reais l espaço de endereços reais é o intervalo de endereços disponíveis em uma memória principal

zeque - Grad. CC10 Memória Virtual l memória contínua vista pelos processos l espaço de endereçamento virtual é o intervalo de endereços que um processo pode referenciar l dissociação entre espaço de endereçamento de um processo do espaço de endereços da memória principal l endereços referenciados por um processo são chamados de endereços virtuais l endereços virtuais devem ser mapeados em endereços reais durante o tempo de execução

zeque - Grad. CC11 Memória Real x Memória Virtual Memória Real Memória Real l física l sem proteção l tamanho limitado l compartilhamento visível l compartilhamento de dados Memória Virtual l abstrata l protegida l tamanho ilimitado l compartilhamento transparente l compartilhamento de dados e de código x

zeque - Grad. CC12 Mapeamento de Endereços l endereço virtual deve ser mapeado em endereço real para a execução da instrução que o referencia Memória Virtual Memória RealMecamismo de Mapeamento de Endereços

zeque - Grad. CC13 Espaço de Endereçamento Virtual Localização Localização l parte na memória principal l parte no disco Swapping Swapping l troca entre partes de programas que se encontram em memória principal e disco (memória secundária)

zeque - Grad. CC14 Funcionamento de Programas Fluxo de Execução Fluxo de Execução l programas não executam randomicamente REGRA REGRA l programas gastam 90% do seu tempo em 10% do seu código

zeque - Grad. CC15 Funcionamento de Programas Princípio da LOCALIDADE Princípio da LOCALIDADE l execução futura se comporta como execução passada l localidade temporal  serão referenciadas as mesmas localidades que foram referenciadas no passado recente:  laços de execução, subrotinas, pilhas e contadores l localidade espacial  serão referenciadas as localidades próximas daquelas referenciadas no passado recente:  varreduras de arrays, execução de código seqüencial, estilos de descrições de variáveis relacionadas próximas umas das outras

zeque - Grad. CC16 Relocação l capacidade que um processo tem de poder executar uma das suas partições em qualquer partição da memória que possa contê-la  o espaço de endereços de um processo pode ser alocado em endereços físicos distintos l suporte de hardware  registradores: base - limite

zeque - Grad. CC17 Compartilhamento l permissão de acesso controlado a uma região de memória  reentrância  compartilhamento l redução da quantidade de memória necessária ao armazenamento

zeque - Grad. CC18 Proteção l garantir que o espaço de endereços de um processo não será invadido por um processo não autorizado  do Sistema Operacional  dos processos de usuário l suporte de hardware  registradores limite  registrador baixo (base) ou alto (limite)  registrador de tamanho  tradução de endereços  operação em modo dual

zeque - Grad. CC19 Gerenciamento do Espaço Objetivos Objetivos l obter o melhor uso dos recursos de armazenamento l conhecer o uso da memória feito pelos processos l esconder detalhes do hardware e com isso criar a ilusão que a memória não tem limite l dar a cada processo a impressão que ele executa sozinho apesar de ter outros processos em execução l permitir que processos possam ser executados independentemente da necessidade de memória

zeque - Grad. CC20 Gerenciamento do Espaço Estratégias Estratégias l de carga  quando carregar uma porção do programa?  por demanda  por antecipação l de alocação  onde carregar uma porção do programa? l de substituição  qual a porção de um programa deve ser substituída?

zeque - Grad. CC21 Particionamento da Memória l Partições Fixas  tradução e carga absolutas  tradução e carga relocáveis SISTEMA OPERACIONAL APLICAÇÃO 2 APLICAÇÃO ffffff MULTIPROGRAMAÇÃO MEMÓRIA FÍSICA SISTEMA OPERACIONAL APLICAÇÃO ffffff MONOPROGRAMAÇÃO SEM USO

zeque - Grad. CC22 Particionamento da Memória l Partições Variáveis  sem swapping  com swapping Sistema Operacional processoA processoB processoD processoC processoE processoF livre Sistema Operacional processoA livre processoD processoC processoE processoF livre Sistema Operacional processoA processoB processoD processoC processoE livre processoF termina processoB termina

zeque - Grad. CC23 Particionamento da Memória l Partições Variáveis  fragmentação  causada por cargas de processos que não utilizam uma partição completamente  união  quando uma partição é liberada, ela é unida a partições livres adjacentes formando uma partição única  compactação  transferência de todas as partições ocupadas que seguem uma partição livre para a criação de uma única partição livre de grande tamanho

zeque - Grad. CC24 Tradução de Endereços l execução associada a referência à memória l toda referência à memória é traduzida de um endereço virtual em um endereço real CPU Tradução de Endereço Memória Física Endereço Virtual Endereço Físico Leitura/Escrita de dados

zeque - Grad. CC25 Tradução de Endereços Com Suporte do Hardware Com Suporte do Hardware Endereço Virtual Endereço Físico Tradução de Endereços CPU MMU Memória Física Mapeamento

zeque - Grad. CC26 Suporte de Hardware para a Tradução Mecanismos para tradução Dinâmica Mecanismos para tradução Dinâmica l tabelas de tradução l buffers de tradução look-aside l registradores  base  limite l relocação l proteção

zeque - Grad. CC27 Tabelas de Tradução Indica que partições da memória virtual se encontram na memória real e onde elas estão Indica que partições da memória virtual se encontram na memória real e onde elas estão l tamanho das tabelas x tamanho das partições  maior a partição/menor a tabela  overhead do mecanismo de tradução  tempo de transferência da memória secundária  necessidade de memória física l endereçamento bi-dimensional: v=(p,d) # Partição: pDeslocamento: d Endereço virtual: v

zeque - Grad. CC28 Buffers de Tradução Look-aside - TLB l evitar busca na tabela de páginas para traduções freqüentes CPU Memória Física Endereço Virtual Endereço Físico Leitura/Escrita de dados TLB? Tradução MMU Tradução de Endereço lembra não lembra

zeque - Grad. CC29 Registradores de BASE e LIMITE Endereço Virtual Endereço Físico limite + > ERRO base

zeque - Grad. CC30 Paginação Divisão do espaço de endereços em PÁGINAS de igual tamanho Divisão do espaço de endereços em PÁGINAS de igual tamanho Divisão da memória principal em PÁGINAS de igual tamanho às do espaço de endereços (MOLDURAS DE PÁGINAS) Divisão da memória principal em PÁGINAS de igual tamanho às do espaço de endereços (MOLDURAS DE PÁGINAS)

zeque - Grad. CC31 Paginação moldura #deslocamento endereço físico tabela de páginas moldurapermissãopresença n página #deslocamento endereço virtual endereço da tabela de páginas tamanho da tabela de páginas ERRO>

zeque - Grad. CC32 Segmentação Divisão do espaço de endereços em SEGMENTOS Divisão do espaço de endereços em SEGMENTOS l um segmento é uma região lógica de memória contígua l segmentos: procedimentos, módulos de programa, dados

zeque - Grad. CC33 Segmentação endereço físico segmento # deslocamento endereço virtual tabela de segmentos iníciotamanhopermissão n presença endereço físico endereço da tabela de segmentos ERRO > +

zeque - Grad. CC34 Paginação / Segmentação Fragmentação Fragmentação l externa: espaço livre entre regiões de memória alocadas l interna: espaço livre dentro de uma região de memória alocada

zeque - Grad. CC35 Paginação / Segmentação prós&contras prós&contras l segmentação + eficiente para endereços esparsos + de fácil compartilhamento - alocação complexa da memória l paginação + de fácil compartilhamento + alocação simples da memória - tabelas de páginas para endereços esparsos

zeque - Grad. CC36 Multiníveis Árvore de Tabelas Árvore de Tabelas l o mais baixo nível: páginas l mais alto níveis: tipicamente segmentos moldura #deslocamento endereço físico página #deslocamento endereço virtual segmento # moldura #deslocamento endereço físico tabela de páginas moldurapermissãopresença n tabela de segmentos end tab de págtam tab pág n > ERRO

zeque - Grad. CC37 Multiníveis Alocação de Tabelas Alocação de Tabelas l de segmentos: usualmente em registradores especiais l de páginas: usualmente na memória principal prós&contras prós&contras + alocar somente as entradas necessárias das tabelas de páginas + fácil alocação da memória + compartilhamento a nível de segmento ou página - um apontador para cada página - tabelas de páginas devem ser contíguas - duas consultas às tabelas por referência à memória

zeque - Grad. CC38 Operação em Modo Dual Modos de execução suportados pelo hardware Modos de execução suportados pelo hardware Modos Modos l Modo de Sistema l Modo de Usuário

zeque - Grad. CC39 Modo Usuário SISTEMA  USUÁRIO SISTEMA  USUÁRIO l executando programa de usuário  cria processo  aloca e inicia espaço de endereços  carrega programa em memória  aloca e inicia tabela de tradução  executa programa  inicializa registradores  inicializa apontadores para tabela de tradução  inicializa a palavra de status do processador  inicia a execução do programa

zeque - Grad. CC40 Modo Sistema Usuário  Sistema Usuário  Sistema l voluntário: Chamada ao Sistema l involuntário: Interrupção/Exceção l quando de uma Chamada ao Sistema, Interrupção ou Exceção:  passa o status do sistema para o modo sistema  muda a pilha de execução para o kernel  salva o contador de programa atual  desvia para o kernel  salva o estado anterior de todos os registradores usados

zeque - Grad. CC41 SWAPPING transferência de processos entre a memória principal e a memória secundária transferência de processos entre a memória principal e a memória secundária Espaço de Toca: espaço de memória secundária reservado ao SWAPPING Espaço de Toca: espaço de memória secundária reservado ao SWAPPING swapping in swapping in l secundária  principal swapping out swapping out l principal  secundária

zeque - Grad. CC42 Alocação de Memória Quando carregar na memória ? Quando carregar na memória ? Onde Carregar na memória ? Onde Carregar na memória ? Quem deve ser substituído na memória ? Quem deve ser substituído na memória ?

zeque - Grad. CC43 Quando Carregar? Carregamento por demanda Carregamento por demanda Carregamento por antecipação Carregamento por antecipação

zeque - Grad. CC44 Quando Carregar? mecanismo de carregamento mecanismo de carregamento l se presente então acessa a memória senão PAGE FAULT ou TLB MISS  solicita carregamento ao SO  escolhe memória para carregamento, se memória não disponível então escolhe memória a ser substituída reescrevendo, se necessário, dessa memória para o disco e atualizando a sua tabela e TLB  carrega do disco para memória  atualiza tabela l transparente aos processos: hardware deve salvar instrução de falha

zeque - Grad. CC45 Onde Colocar? Paginação Paginação l simplicidade l o carregamento de uma página virtual é feito sobre uma MOLDURA qualquer da memória

zeque - Grad. CC46 Onde Colocar? Segmentação Segmentação l políticas de alocação  melhor ajuste - best fit: escolhe o segmento de memória disponível que cause o menor fragmento externo  lista de segmentos em ordem crescente de tamanhos  pior ajuste - worst fit: escolhe o segmento de memória disponível que cause o maior fragmento externo  lista de segmentos em ordem decrescente de tamanhos  primeiro ajuste - first fit: escolhe o primeiro segmento de memória disponível que possa conter o segmento (variação: primeiro ajuste circular)  lista de segmentos em ordem crescente de endereços

zeque - Grad. CC47 Quem Retirar? substituição substituição l decisão sobre quais são as páginas que devem ser retiradas da memória (SWAPPING OUT) que novas páginas sejam carregadas (SWAPPING IN) l candidatas ao SWAPPING  páginas de processos já concluídos  páginas de processos bloqueados há muito tempo  páginas de processos prontos mas que foram acessados há muito tempo  páginas que não foram modificadas desde que foram carregadas

zeque - Grad. CC48 Políticas de Substituição decisão sobre qual a moldura a ser substituída decisão sobre qual a moldura a ser substituída

zeque - Grad. CC49 Substituição Randômica l selecionar randomicamente uma moldura de página a ser substituída  descrição simples  método pobre: páginas retiradas podem estar frequentemente em uso gerando alta taxa de page faults

zeque - Grad. CC50 Substituição FIFO l seleciona a página que foi carregada a mais tempo  manter lista de todas as páginas da memória por ordem cronológica de carregamento  cada página reside na memória por um mesmo tempo  retira páginas que podem estar sendo usadas pesadamente

zeque - Grad. CC51 Substituição Ótima (MIN ou OPT) l selecionar a moldura que será referenciada no futuro mais distante  método ótimo por apresentar a mais baixa taxa de page faults  não é implementável pela sua incapacidade de estabelecer o futuro de acessos  primeira execução para coletar os tempos de referência  execução segunda para medir o desempenho da política  utilização comparativa  sem utilidade prática

zeque - Grad. CC52 Não Usada Recentemente - NRU NRU - not recently used NRU - not recently used l selecionar a moldura considerando o seu passado recente de acesso  relógio para marcar o passado recente é necessário (“agora” e “antes”)  implementação inclui bits R (referência: leitura/escrita) e M (modificação: escrita) para cada página  classificação das páginas segundo o estado dos bits R e M l fácil, eficiente, performante l variações:  estratégias para zerar o relógio  lista circular para escolha mais justa  consideração de timestamp

zeque - Grad. CC53 Menos Usada Recentemente - LRU LRU - least recently used LRU - least recently used l substitui a página que não está sendo usada há mais tempo  é uma aproximação da política ótima  necessidade de hardware especial para a sua implementação ou de software que o substitua  devido a uma implementação cara, uma aproximação desta política é usualmente escolhida  classificação das páginas onde as páginas mais usadas recentemente estão na frente e as menos usadas estão atrás

zeque - Grad. CC54 Mais Usada Recentemente - MRU MRU - most recently used MRU - most recently used l substitue a página que foi acessada há menos tempo  considera que uma página usada recentemente não será mais usada no futuro próximo  método pobre

zeque - Grad. CC55 Segunda Chance Cíclica l dá outra canche à página que deveria ser substituída e que foi recentemente usada  manter lista ordenada de páginas  se página a ser substituída foi referenciada no passado recente, marca esta página como “não referenciada” e a coloca no final da lista  se na busca de uma página para substituição uma página a qual foi dada uma outra chance for encontrada, esta página será a escolhida  aproximação da política LRU

zeque - Grad. CC56 Relógio de Páginas l variação da segunda chance cíclica  manter lista circular de páginas

zeque - Grad. CC57 Substituição Péssima (MAX ou PES) l selecionar a moldura que será referenciada no futuro mais próximo  método péssimo por apresentar a mais alta taxa de page faults  não é implementável pela sua incapacidade de estabelecer o futuro de acessos  primeira execução para coletar os tempos de referência  execução segunda para medir o desempenho da política  utilização comparativa  sem utilidade prática

zeque - Grad. CC58 Conjunto de Trabalho Objetivo Objetivo l redução da taxa de page faults Descrição Descrição l estimar páginas de um processo que estão sendo usadas correntemente l um conjunto de trabalho é constituído pelas páginas correntemente usadas de um processo

zeque - Grad. CC59 Conjunto de Trabalho Descrição Descrição l conjunto de trabalho e estado de processo  um processo pronto é aquele pode ter o seu conjunto de trabalho residindo na memória l conjunto de trabalho e substituição  um conjunto de trabalho deve ser substituído integralmente por outro conjunto de trabalho l tamanho do conjunto de trabalho  estático: quantidade fixa  dinâmico: número de páginas varia com o tempo

zeque - Grad. CC60 Relativos à Paginação trashing trashing l sobrecarga da memória, páginas são retiradas da memória mesmo que elas ainda sejam referenciadas no futuro próximo locality locality l durante uma fase de execução de programa, as referencias são feitas unicamente sobre um pequeno número de páginas prefetching / prepaging prefetching / prepaging l carregamento das páginas de um processo antes mesmo que elas sejam referenciadas