Organização de um Sistema Operativo

Documentos relacionados
Infra-Estrutura de Software IF677

SSC0640 Sistemas Operacionais I

Administração de Memória

Gerência de Memória. Algoritmos de Substituição de Páginas. (Aula 20)

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

GERENCIAMENTO DE MEMÓRIA

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Capítulo 4 Gerenciamento de Memória

Modelação de algoritmos de substituição de páginas Anomalia Belady

Infra-Estrutura de Software

Infra-Estrutura de Software

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

Infra-Estrutura de Software

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT

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

Arquitetura de Sistemas Operacionais

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Gerenciamento de Memória

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

SSC0640 Sistemas Operacionais I

Gerência de Memória Algoritmos de Substituição de Páginas

Sistemas Operativos: Gestão de Memória

INFRA-ESTRUTURA DE SOFTWARE. Gerência de Memória

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Substituição de Páginas

Algoritmos de Gestão de Memória

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Sistemas Operacionais Memória Virtual

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Algoritmos de Gestão de Memória

Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros

Gerenciamento de Memória

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

Gerenciamento de Memória

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

Gerenciamento de Memória

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais

Gerência de Memória. Aspectos de Projeto

Sistemas Operacionais I Memória Virtual

Gestão de memória - Memory Management Unit (MMU)

Sistemas Operacionais

Gestão de Memória algoritmos e políticas

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos

Sistemas Opera r cionais Gerência de Memória

Gerência de Memória. Algoritmos de Substituição de Páginas

Gerenciamento de memória Memória Virtual

Memória Virtual. Adriano J. Holanda 1/3/2016

Sistemas Operacionais

Gestão de Memória. Espaço de Endereçamento

Prof. Kleber R. Rovai

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. - Gerência de Memória -

Gestão de memória - Memory Management Unit (MMU)

Sistemas Operacionais. Gerenciamento de Memória

Sistemas de Informação. Sistemas Operacionais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Gerenciamento de memória

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Exercícios de revisão V2

Gerência de Memória. Gerência de Memória Virtual. Gerência de Memória. Gerência de Memória. Gerência de Memória. Gerência de Memória 17/04/2017

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Memória virtual. Sistemas de Computação

Sistemas Operacionais

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

Memória virtual. Sistemas Segmentados

13 de Maio de Aula 17

Organização e Arquitetura de Computadores

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Gestão de Memória. Espaço de Endereçamento

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais Aula 16 Memória Virtual

Sistemas Operacionais: Memória Virtual

Segmentação de Memória

Capítulo 6 Nível do Sistema Operacional

Memória Virtual. Paulo Sérgio Almeida. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Gerência da Memória. Adão de Melo Neto

Gerência de memória II

Reserva de memória não-contígua significa que a memória atribuída a um objecto pode ser composta de bocados espalhados pela memória física.

Gerenciamento de Memória

Gerência de memória III

Sistemas de Operação / Fernando Silva / Departamento 1 de Ciência de Computadores 6.1

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Divisão da lacuna em espaços na base 2: Eficiente quanto à velocidade e Ineficiente quanto à fragmentação.

Aula 15. Memória Virtual - Desempenho. 1.1 Contexto 1.2 Políticas de Reposição de Páginas 1.3 Working-Set 1.4 Trashing

Introdução aos Sistemas Operacionais. Gerenciamento de Memória

Organização e Arquitetura de Computadores I

UNIX Gerência de Memória

ENADE 2011 SISTEMAS OPERACIONAIS

Sistemas Operativos: Gestão de Memória

Transcrição:

Gestão de Memória 1. Conceitos Básicos 2. Swapping 3. Memória Virtual 4. Algoritmos de substituição de páginas 5. Modelação de algoritmos de substituição de páginas 6. Questões no desenho de sistemas de paginação 7. Questões na implementação 8. Segmentação

Organização de um Sistema Operativo System Call Handler File System 1... File System m Virtual memory Driver 1 Driver 2... Driver n Threads, thread scheduling, thread synchronization Interrupt handling, context switching, MMU Hide the low-level hardware 12/16/2002 Sistemas Operativos 2001/2002 2

Gestão de Memória Idealmente, programadores querem memória Rápida Grande Não volátil Hierarquia de tipos de memória Cache - Pequena porção de memória rápida e cara Memória principal - Média velocidade, médio preço Armazenamento em disco gigabytes de memória lenta e barata Gestor de memória gere a hierarquia de memórias. Objectivos Objectivos do do capítulo: capítulo: investigar investigar as as diferentes diferentes tipos tipos de de gestão gestão de de memória memória 12/16/2002 Sistemas Operativos 2001/2002 3

Gestão de Memória Monoprogramação sem swapping nem paging Programa de utilizador SO na RAM 0xFF.. SO na ROM Programa de utilizador 0xFF.. Drivers em ROM Programa de utilizador SO na RAM 0 0 0 0xFF.. Mainframes; Mainframes; Minicomputers Minicomputers Palmtops; Palmtops; embedded embedded systems systems Modelo Modelo inicial inicial dos dos PC s PC s com com MSDOS MSDOS (BIOS) (BIOS) Três modos simples de organizar memória - um sistema operativo com um processo de um utilizador 12/16/2002 Sistemas Operativos 2001/2002 4

Gestão de Memória Multiprogramação com partições fixas Partição 4 Partição 3 800 K 800 K Partição 4 800 700 K Partição 3 800 700 K 400 K 400 K Partição 2 Partição 2 Partição 1 Sistema Operativo 200 K 100 K Partições fixas de memória Filas de entrada separadas para cada partição Uma única fila de entrada Partição 1 Sistema Operativo 200 K 100 K Desvantagem: Pode ser posto numa queue pequena demais Uma queue pode estar cheia, com partições livres 12/16/2002 Sistemas Operativos 2001/2002 5

Gestão de Memória Problemas que se colocam : Re-alocação e Protecção Não pode ter a certeza onde é que o programa vai ser carregado em memória (Re-alocação) O endereço de memória das variáveis e rotinas de código não pode ser absoluto Tem que se menter o programa fora da partição de outros processos Usar os valores base e limite (Proteccção) Endereços são mapeados, usando um valor base, por forma a mapear endereços físicos Endereços superiores ao limite físico estão errados Sempre que o processo é escolhido para correr, base e limite também são carregados 12/16/2002 Sistemas Operativos 2001/2002 6

Swapping Tempo C C C C C B B B B A A A A D D D Sistema Operativo Sistema Operativo Sistema Operativo Sistema Operativo Sistema Operativo Sistema Operativo Sistema Operativo Sistemas Sistemas interactivos: interactivos: -- usam usam time time sharing sharing -- processos processos em em excesso excesso têm têm de de ser ser gravados gravados em em disco disco Batch BatchSystems: -batch -batché carregado carregado em em memória memória -Fica -Fica em em memória memória até até terminar terminar -Precisa -Precisa de de espaço espaço em em memória memória para para suportar suportar processo processo e manter manter CPU CPU ocupado. ocupado. 12/16/2002 Sistemas Operativos 2001/2002 7

Swapping Alocação de memória muda com a entrada e saída de processos de memória Duas estratégias Swapping programa todo em memória. Carregado de disco para memória Virtual Memory Só parte do programa é carregado para memória 12/16/2002 Sistemas Operativos 2001/2002 8

Swapping Exemplo com segmentos Espaço livre B stack Espaço livre B Em uso B data B code A Sistema Operativo Espaço livre Em uso A stack A data A code Sistema Operativo Espaço livre Alocação de espaço para segmentos que podem crescer Alocação de espaço para segmentos de stack e data 12/16/2002 Sistemas Operativos 2001/2002 9

Swapping Gestão de memória com bit Maps Exemplo de parte de memória com 5 processos e 3 espaços livre. Exemplos de gestão com bit Maps e com Listas. 12/16/2002 Sistemas Operativos 2001/2002 10

Swapping Gestão de memória com listas ligadas (a) (b) Antes de X terminar Depois de X terminar A X B torna-se A B A X torna-se A (c) X B torna-se B (d) X torna-se Listas ligadas: ligação dupla ou simples? Algoritmos de busca: First-Fit, Next-Fit, Best-Fit,Worst- Fit,Quick-Fit 12/16/2002 Sistemas Operativos 2001/2002 11

Memória Virtual Memória física é limitada Programas necessitam de mais memória Solução a nível da aplicação: divisão do programa em blocos distintos Programador tinha de retirar e carregar em memória os blocos (o SO não intervinha) Como simular a existência de mais memória do que a que existe realmente? 12/16/2002 Sistemas Operativos 2001/2002 12

Memória Virtual Paginação CPU Memory Management Unit CPU envia endereço virtual para MMU Memória Control. Discos Barramento Posição e função da MMU 12/16/2002 Sistemas Operativos 2001/2002 13

Memória Virtual Paginação A relação entre endereços virtuais e endereços físicos ( Page Table ) 12/16/2002 Sistemas Operativos 2001/2002 14

Memória Virtual Tabela de Páginas Simples Operações Internas da MMU com 16 páginas de 4KB 12/16/2002 Sistemas Operativos 2001/2002 15

Memória Virtual Tabelas de Páginas de vários níveis Endereços a 32 bits Page Tables de dois níveis 12/16/2002 Sistemas Operativos 2001/2002 16

Memória Virtual Estrutura de uma Page Table Cache inibido Modificado Presente/Não Presente Page frame number Referênciado Protegido Page table entry 12/16/2002 Sistemas Operativos 2001/2002 17

Memória Virtual TLBs Translation Lookaside Buffers Valid 1 1 1 1 1 1 1 1 Virtual page 140 20 130 129 19 21 860 861 Modified 1 0 1 1 0 0 1 1 Acelera o paging Protection RW R X RW RW R X R X RW RW Page frame 31 38 29 62 50 45 14 75 12/16/2002 Sistemas Operativos 2001/2002 18

Memória Virtual Page Tables Invertidas Comparação de uma page table tradicional com uma page table invertida 12/16/2002 Sistemas Operativos 2001/2002 19

Algoritmos de substituição de páginas Falhas de páginas (page fault) força a uma escolha Que página deve ser removida Arranja espaço para uma nova página Páginas modificadas devem ser salvas Não modificadas sobrepor Não se deve escolher uma página usada com frequência Voltará a ser reposta brevemente 12/16/2002 Sistemas Operativos 2001/2002 20

Algoritmo Óptimo de substituição de páginas Substituir página necessária o mais tarde possível Óptimo, mas não realista Estimar... Fazendo registo das páginas usadas na última vez que o processo correu Óptimo, mas impraticável. 12/16/2002 Sistemas Operativos 2001/2002 21

Algoritmo de substituição de páginas Not Recently Used (NRU) Cada página tem: Reference Bit, Modified Bit Bits são alterados quando a página é referenciada, modificada Páginas são classificadas Classe 0: Not referenced, not modified Classe 1: Not referenced, modified Classe 2: referenced, not modified Classe 3: referenced, modified NRU remove página, aleatoriamente, da classe mais baixa não vazia. 12/16/2002 Sistemas Operativos 2001/2002 22

Algoritmo de substituição de páginas - FIFO Mantém uma lista ligada de todas as páginas Pela ordem em que chegam à memória Páginas no inicio da lista são substituídas Página à cabeça é a que está à mais tempo em memória Página na cauda é a mais recente Desvantagem Não tem em conta se a página é ou não muito utilizada 12/16/2002 Sistemas Operativos 2001/2002 23

Algoritmo de substituição de páginas Second Chance Primeira página carregada 0 3 7 8 12 14 15 18 A B C D E F G H Página carregada mais recentemente Tempo em que foram carregadas 3 7 8 12 14 15 18 20 B C D E F G H Operações do algoritmo Páginas ordenadas em FIFO Lista se a falha ocorre no instante 20, A tem o bit R activado 12/16/2002 Sistemas Operativos 2001/2002 24 A A é tratada como uma página carregada recentemente

Algoritmo de substituição de páginas The Clock L A B K C J D I E H F G Quando Quando ocorre ocorre uma uma falha falha de de página, página, a página página para para a qual qual o ponteiro ponteiro aponta aponta é inspeccionada. inspeccionada. A acção acção a tomar tomar depende depende do do bit bit R: R: -R=0: -R=0: Remover Remover a página página e avançar avançar ponteiro ponteiro -R=1: -R=1: Limpar Limpar R e avançar avançar ponteiro ponteiro 12/16/2002 Sistemas Operativos 2001/2002 25

Last Recently Used (LRU) Assume que as páginas usadas recentemente voltarão a ser usadas em breve Deitar fora as páginas não usadas à muito tempo Tem de manter uma lista ligada de páginas Mais recentemente usados à cabeça, menos à cauda Actualizar a lista cada vez que a memória é referenciada Como opção, manter um contador em cada entrada page table Escolher a página com o menor valor do contador Periodicamente fazer reset ao contador (colocar a 0) 12/16/2002 Sistemas Operativos 2001/2002 26

Algoritmo baseado em hardware-aging 0 1 2 3 Página 0 1 2 3 0 1 1 1 Página 0 1 2 3 0 0 1 1 Página 0 1 2 3 0 0 0 1 Página 0 1 2 3 0 0 0 0 Página 0 1 2 3 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 (a) (b) (c) (d) (e) 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 (f) (g) (h) (i) (j) LRU usando matrizes páginas referenciadas por ordem: 0,1,2,3,2,1,0,3,2,3 12/16/2002 Sistemas Operativos 2001/2002 27

Algoritmo em Software - AGING Bits R para páginas 0-5 em t0 Bits R para páginas 0-5 em t1 Bits R para páginas 0-5 em t2 Bits R para páginas 0-5 em t3 Bits R para páginas 0-5 em t4 Página 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 10000000 11000000 11100000 11110000 01111000 1 2 3 4 5 00000000 10000000 00000000 10000000 10000000 10000000 01000000 00000000 11000000 01000000 11000000 00100000 10000000 01100000 10100000 01100000 00100000 01000000 10110000 01010000 10110000 10001000 00100000 01011000 00101000 Notar que existem 6 páginas para 5 ticks de clock 12/16/2002 Sistemas Operativos 2001/2002 28

Algoritmo de substituição de páginas Working Set 12/16/2002 Sistemas Operativos 2001/2002 29

Algoritmo de substituição de páginas WSClock 12/16/2002 Sistemas Operativos 2001/2002 30

Algoritmo de substituição de páginas - Resumo Algoritmo Óptimo NRU FIFO Segunda hipotese Clock LRU LFU Aging Working Set WSClock Comentário Não é possivel (referência) Pouco eficiente Pode retirar páginas importantes Melhorias ao FIFO Realista Excelente, dificil de implementar Fraca aproximação do LRU Eficiente que se aproxima do LRU Dificil de implementar Boa eficiência 12/16/2002 Sistemas Operativos 2001/2002 31