A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Zeque - Grad. CC1 Sistemas Operacionais Gerenciamento do Espaço Prof. José Queiroz - ZEQUE."— Transcrição da apresentação:

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

2 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

3 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

4 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

5 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

6 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

7 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

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

9 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

10 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

11 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

12 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

13 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)

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

15 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

16 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

17 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

18 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

19 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

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

21 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 1 000000 400000 ffffff MULTIPROGRAMAÇÃO MEMÓRIA FÍSICA SISTEMA OPERACIONAL APLICAÇÃO 000000 ffffff MONOPROGRAMAÇÃO SEM USO 999999

22 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

23 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

24 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

25 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

26 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

27 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

28 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

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

30 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)

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

32 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

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

34 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

35 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

36 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 00 01. n tabela de segmentos end tab de págtam tab pág 00 01. n > ERRO

37 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

38 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

39 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

40 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

41 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

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

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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 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

54 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

55 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

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

57 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

58 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

59 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

60 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


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

Apresentações semelhantes


Anúncios Google