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

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

IC - UFF Sistemas Operacionais 5. Gerenciamento de memória Texto base: capítulos 7 e 8 Operating Systems: Internals and Design Principles W. Stallings.

Apresentações semelhantes


Apresentação em tema: "IC - UFF Sistemas Operacionais 5. Gerenciamento de memória Texto base: capítulos 7 e 8 Operating Systems: Internals and Design Principles W. Stallings."— Transcrição da apresentação:

1 IC - UFF Sistemas Operacionais 5. Gerenciamento de memória Texto base: capítulos 7 e 8 Operating Systems: Internals and Design Principles W. Stallings

2 IC - UFF O problema l Em um ambiente multiprogramado, é necessário: n subdividir a memória para acomodar múltiplos processos n mas se poucos processos estão na memória, em boa parte do tempo estarão esperando por E/S: UCP sub-utilizada n então, deve-se alocar memória de forma eficiente ao maior número de processos

3 IC - UFF Alguns requisitos (1) l Relocação n o programador não deve se preocupar com o local onde o programa (processo) será carregado para execução n durante a execução, o processo poderá sair da memória e retornar para um local diferente n referências devem ser resolvidas para endereços de memória física

4 IC - UFF Alguns requisitos (2) l Proteção n processos não devem poder referenciar posições de memória em outros processos sem permissão n em virtude da relocação, não é possível testar endereços em programas n logo, com suporte de h/w, o teste deverá ser em tempo de execução

5 IC - UFF Alguns requisitos (3) l Compartilhamento n deve-se permitir que vários processos possam acessar a mesma porção de memória n o mecanismo de proteção deve ter, assim, a necessária flexibilidade

6 IC - UFF Alguns requisitos (4) l Organização lógica n programas são normalmente separados em módulos, que podem ser escritos e compilados separadamente n graus diferentes de proteção podem ser atribuídos aos módulos n compartilhamento de módulos

7 IC - UFF Alguns requisitos (5) l Organização física n memória é organizada como uma hierarquia n se um programa precisa de mais memória do que o disponível na MP, a MS deverá ser utilizada n uso de memória cache n este gerenciamento deverá ser feito de forma transparente

8 IC - UFF Particionamento fixo l Particionamento da memória em regiões fixas l Se partições idênticas n processos menores que o tamanho da partição podem ser carregados diretamente. Processos maiores exigirão overlay. n ineficiência: fragmentação interna

9 IC - UFF e... l Se partições de tamanhos distintos n diminue a ineficência (não a elimina) n aumenta a sobrecarga do gerenciamento (e.g., uma fila por partição ou fila única?) l De qualquer forma: n o número de partições determina o número de processos no sistema n processos pequenos utilizam de maneira ineficiente a memória n relocação

10 IC - UFF Particionamento dinâmico l Número e tamanho das partições é variável l Cada processo recebe a quantidade de memória que necessita l Gerenciando buracos e processos l Alocação: algumas possibilidades n primeiro encaixe (o melhor!) n próximo encaixe (um pouco pior) n melhor encaixe (o pior!)

11 IC - UFF mas também... l Buracos na memória: fragmentação externa l Compactação: tempo perdido e relocação dinâmica (melhoria com swapping) l Sobrecarga maior que método fixo l Em qualquer caso, relocação l Então, o que fazer?

12 IC - UFF Memória virtual: paginação l Processo é dividido em páginas; memória é dividida em quadros de mesmo tamanho l Páginas/quadros são de pequeno tamanho (e.g., 1K): fragmentação interna pequena l Elimina fragmentação externa l SO mantém uma tabela de páginas por processo

13 IC - UFF e mais... l Processo não precisa estar completamente na MP l Processo não precisa ocupar área contígua em memória l Endereços são gerados dinamicamente em tempo de execução

14 IC - UFF Paginação: suporte de h/w l Cada processo tem sua tabela de páginas l TP: mapeamento página x quadro l Bit de presença l Bit de modificação l Como funciona? l Tabela de páginas pode estar só parcialmente na MP l Dois acessos à MP Translation Lookaside Buffer (TLB)

15 IC - UFF Como funciona? l SO traz para a MP algumas páginas do programa l O conjunto de páginas de um processo presentes na MP é chamado de conjunto residente l Quando é necessário um endereço que não está presente na MP uma interrupção é gerada e processo é colocado no estado bloqueado

16 IC - UFF e... l Enquanto o SO busca a página necessária (acesso a disco), outro processo é despachado l Quando a página é trazida para a memória, o primeiro processo passa para a fila dos prontos l Transparência para usuário l Memória virtual

17 IC - UFF Vantagens desta divisão l Mais processos (pedaços!) podem estar na MP l Mais provável de existirem processos na fila dos prontos l Processos podem ser maiores que a MP (tão grandes quanto a MS) l Reduz o tempo de swapping

18 IC - UFF Thrashing l Possibilidade de enviar para MS um pedaço de processo logo antes dele ser utilizado l O processador pode gastar a maior parte do tempo fazendo swapping em vez de processando instruções do usuário

19 IC - UFF Princípio da localidade l Só partes do processo serão utilizadas em um dado intervalo de tempo l Localidade espacial e temporal l Palpites inteligentes podem ser feitos quanto aos pedaços que serão necessários no futuro próximo memória virtual pode funcionar eficientemente

20 IC - UFF Localidade l Localidade de referência: n localidade espacial: l se um item é referenciado, itens com endereço próximo tendem a ser referenciados em seguida n localidade temporal: l se um item é referenciado, ele tenderá a ser referenciado novamente em breve

21 IC - UFF Exemplo de localidade exemplo (... ) {... for (i=1; i

22 IC - UFF Memória virtual: segmentação l Programas são normalmente separados em módulos: unidade lógica l Segmentos de um programa não precisam ser do mesmo tamanho l Existe um tamanho máximo para o segmento l Usuário tem controle

23 IC - UFF Segmentação: suporte de h/w l Segmentação n pode ser dinâmica n permite que programas sejam alterados e recompilados independentemente n compartilhamento e proteção l Segmentação x paginação l Segmentação pura l Segmentação com paginação

24 IC - UFF Memória virtual: suporte de s/w l Políticas: n busca n onde colocar pedaços na MP n que páginas retirar n tamanho do conjunto residente n política de limpeza n controle de carregamento n que processo suspender

25 IC - UFF Política de busca l Determina em que instante uma página deve ser trazida para memória principal. O objetivo é minimizar o número de faltas de página l Políticas: n demanda n pré-paginação (Denning, Working Set)

26 IC - UFF Tamanho do conjunto residente l Alocação fixa: n cada processo recebe um número fixo de quadros n em caso de falta de páginas, uma das residentes é trocada l Alocação variável: número de páginas varia durante a execução do processo

27 IC - UFF Prevenindo o thrashing

28 IC - UFF Onde colocar? l Determina a localização das partes de um processo em MP l Usualmente é irrelevante devido à paginação l Se segmentação pura: melhor encaixe, primeiro encaixe,...

29 IC - UFF Política de troca (1) l Trata da seleção da página a ser retirada da MP l Algumas páginas podem ficar permanentemente em memória: n estruturas do núcleo n buffers de E/S n SO de tempo real

30 IC - UFF Política de troca (2) l Política ótima: seleciona a página cujo tempo para o próximo acesso será o mais longo (comparação) l LRU: pelo princípio da localidade deve ser a de menor probabilidade de ser acessada. Implementação: etiqueta de tempo

31 IC - UFF Política de troca (3) l FIFO: buffer circular, de simples implementação, retira página mais antiga l Relógio n noção de tempo e uso n bit adicional de controle l Desempenho: LRU, Relógio, FIFO

32 IC - UFF Tratando a falta de páginas Trap do h/w para o núcleo; salva PC e registradores de status Salvamento dos registradores de uso geral; chama SO SO descobre qual página virtual é necessária SO verifica validade do endereço e proteção e consegue um quadro

33 IC - UFF Tratando … (cont.) l Se quadro foi alterado, salva-o em disco l SO busca página do disco l Quando página chega, tabela de páginas é atualizada; quadro é marcado l A instrução que causou a falta é retornada l Processo que causou falta é re-escalonado l Registradores são restaurados e execução continua

34 IC - UFF Política de limpeza l Possibilidades: n limpeza por demanda: página é salva quando é selecionada para troca n pré-limpeza: páginas salvas em lotes l Buffer de páginas: lista de páginas não modificadas, lista de páginas modificadas

35 IC - UFF Controle de carga l Determina o número de processos residentes em MP l Poucos processos, possibilidade de processador vazio; muitos processos, possibilidade de thrashing l Regra dos 50% de utilização do dispositivo de paginação

36 IC - UFF Suspensão de processos l Usada para reduzir o nível de multiprogramação n o de menor prioridade: escalonamento n processo causador de falta de páginas: conjunto residente necessário ausente n último processo ativado n maior processo n...

37 IC - UFF Leitura suplementar l Operating Systems Concepts, A. Silberschatz e P.B. Galvin, Addison- Wesley l Modern Operating Systems, A.S. Tanenbaum, Prentice Hall

38 IC - UFF Multiprogramação com partições fixas

39 IC - UFF Um modelo simples para multiprogramação Degree of multiprogramming U = 1 - p n

40 IC - UFF Particionamento dinâmico

41 IC - UFF Gerenciando buracos e processos l Mapas de bits (b): simples; ineficiência l Listas encadeadas (c) l Buddy System

42 IC - UFF Relocação PCB programa dados pilha registrador de base somador imagem do processo na memória endereço relativo registrador limite comparador int endereço absoluto

43 IC - UFF A MMU

44 IC - UFF Mapeamento end. virtual end. físico

45 IC - UFF Paginação: endereçamento pont. tab. de páginas # páginadeslocam. # quadrodeslocam. # quadro + endereço virtual tabela de páginas memória principal registrador

46 IC - UFF Paginação: endereçamento outros bits de ctl.PMnúmero do quadro número da páginadeslocamento endereço virtual linha da tabela de páginas e.g., referenciada, proteção, compartilhamento, desabilita colocação na cache, etc.

47 IC - UFF Paginação: exemplo

48 IC - UFF Tab. de páginas em 2 níveis Second-level page tables Top-level page table

49 IC - UFF Paginação: TLB # páginadeslocam. endereço virtual memória principal memória secundária # quadrodeslocam. tabela de páginas TLB

50 IC - UFF Memória associativa: TLB

51 IC - UFF Espaço de uma dimensão

52 IC - UFF Memória segmentada

53 IC - UFF Segmentação: endereçamento pont. tab. segmentos # seg.deslocam. base + deslocamento + endereço virtual tabela de segmentos memória principal registrador comp.base +

54 IC - UFF Segmentação: endereçamento comprimento outros bits de ctl.PM número do segmentodeslocamento endereço virtual linha da tabela de segmentos base do segmento

55 IC - UFF Paginação x segmentação

56 IC - UFF Segmentação pura Compactação!

57 IC - UFF # quad. # pág. desloc. # seg. Segmentação com paginação memória principal + pont. tab. seg. + tabela de segmentos tabela de páginas

58 IC - UFF Segmentação com paginação número do segmento comprimento outros bits de ctl. deslocamento endereço virtual linha da tabela de segmentos base do segmento número da página outros bits de ctl.PMnúmero do quadro linha da tabela de páginas

59 IC - UFF Política do relógio pág=120 u=1 pág=237 u=1 pág=12 u=1 pág=49 u=0 pág=50 u= n-1 pág=120 u=1 pág=237 u=0 pág=12 u=0 pág=49 u=0 pág=50 u= n-1 pág=53 u=1


Carregar ppt "IC - UFF Sistemas Operacionais 5. Gerenciamento de memória Texto base: capítulos 7 e 8 Operating Systems: Internals and Design Principles W. Stallings."

Apresentações semelhantes


Anúncios Google