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

Documentos relacionados
Sistemas Opera r cionais Gerência de Memória

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

Sistemas de Computação. Gerenciamento de memória

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

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

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

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

Gerenciamento de memória

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

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

Sistemas Operacionais

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

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período


Organização e Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES

Introdução. Considerações:

Gerenciamento de Memória

Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

SSC0640 Sistemas Operacionais I

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

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

EA075 Memória virtual

Memória Virtual. MAC Arquitetura de Computadores Prof. Siang Wun Song. Baseado em W. Stallings Computer Organization and Architecture

Hierarquia de Memória

SSC0611 Arquitetura de Computadores

Gerenciamento de Memória

Prof. Adriano Maranhão

AULA 14 - Memória Virtual

Algoritmos de Gestão de Memória

SOP - TADS Gerência de Memória Cap 3 Tanenmbaum

Sistemas Operacionais. Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani

Gerenciamento de Memória

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

Sistemas Operacionais: Memória Virtual

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Aula 10 Gerenciamento de Memória

Gerência de Memória. Gerência de memória. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos. Memória: UCP. Unidade de controle

Gerenciamento de Memória

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

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

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

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

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

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Sistemas Operacionais Gerência de Memória

Memória virtual. Sistemas de Computação

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

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

SISTEMAS OPERACIONAIS

GERENCIAMENTO DE PROCESSOS

Sistemas Operacionais Memória Virtual

Gerenciamento de memória Memória Virtual

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Memória Cache. Walter Fetter Lages.

Arquitetura e Organização de Computadores

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII

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

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

Arquitetura de Sistemas Operacionais

Sistemas Operacionais. Gerência de Memória

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

Correção de Erros. Erros de memória de semicondutores podem ser:

Gerenciamento de Memória

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 9 Ge r ê n cia a de e M e m ór ia

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

IFPR Instituto Federal do Paraná. Curso Técnico em Informática GERÊNCIA DE MEMÓRIA. SO Sistemas Operacionais. Professora Elaine Augusto Praça

Capítulo 7 Gerência de Memória

Gerenciamento de Memória

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

Capítulo 6 Nível do Sistema Operacional

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

Arquitetura e Organização de Computadores

Organização e Arquitetura de Computadores I

Gerência de Recursos. Gerência de Memória

Algoritmos de Gestão de Memória

Gerência de memória III

Organização de Computadores

Memória para CAD. Aleardo Manacero Jr.

Gerência de Recursos. Gerência de Memória

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

MEMÓRIA CACHE FELIPE G. TORRES

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

ELECTRÓNICA DE COMPUTADORES. Sumário

ENADE 2011 SISTEMAS OPERACIONAIS

EA960 Memória virtual

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Gerência de memória II

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

Hierarquia de Memória

Organização e Arquitetura de computadores

Transcrição:

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

ORGANIZAÇÃO DA UNIDADE Processador - Escalonamento Memória Primária Fundamentos Formas de Particionamento Swapping Técnicas de Overlay Memória Virtual 2

Fundamentos Gerenciar a memória consiste na tarefa de subdividir e alocar espaços para acomodar os processos em execução. Espaços são requeridos (alocados) e liberados, a medida que os processos são executados. Os espaços de memória ocupados pelos processos precisam ser preservados (protegidos). Os processos podem ter a necessidade de aumentar o espaço ocupado ou mesmo compartilhar espaço com outros. 3

Organização e Funcionalidades Compartilhamento Proteção Alocação Memória Re-alocação Organização Lógica Organização Física 4

Organização Física Endereço 0 Endereço Endereço 2 Endereço 3 M bits M bits M bits M bits Memória de Acesso Direto ~ ~ ~ ~ N células Endereço N - 2 Endereço N - Todas as células têm a mesma quantidade M de bits Bit Bit 2 Bit m- 5

Organização Física TAG Dados M bits M bits M bits M bits Memória de Acesso Associativo ~ ~ ~ ~ N células Bit Bit 2 Bit m- 6

Organização Lógica Consiste na forma como a memória é vista (particionada) logicamente pelo SO. Contíguo Simples Estático Formas de Particionamento: Estático Relocável Dinâmico Paginado Segmentado 7

Particionamento Contíguo Simples Interrupção do Processo Dispositivo de Drivers Seqüência de Job Monitor Interpretador de linguagem de Controle Limite Área de Programa do Usuário 8

Particionamento Estático Gerenciamento de Recursos I Processos em fila externa para execução X A C Y SO Partição # Partição #2 Limite Superior da partição # Limite Inferior da partição # W Z Partição #3 yendereços absolutos são gerados de forma estática - Linkeditor ou Carregador ysimples implementação ybaixo desempenho yfragmentação interna 9

Particionamento Estático Relocável Processos em fila externa para execução X A C 6Kb.5Kb 3Kb ou SO Partição # 2Kb Partição #2 8Kb Partição #3 5Kb Limite Superior da partição # Limite Inferior da partição # Partições de tamanho fixo yendereçamento relativo yendereços absolutos dinâmicos, calculados em tempo de execução ybaixo desempenho yfragmentação interna 0

Endereço Relativo x Absoluto Gerenciamento de Recursos I Loader Endereço Relativo Base Register Bloco Controle Processo Bounds Register Somador Compara Endereço Absoluto Trap para o SO (caso de erro de acesso) Programa Dados Pilha Imagem do processo em memória

Particionamento Dinâmico Processos em fila externa para execução C A X Kb 3Kb SO 3-5K Partições de tamanho variável ya quantidade e o tamanho das partições são variáveis ypara cada processo, é alocado o espaço exato que for necessário (não tem fragmentação interna) yeventualmente, são criados buracos de tamanho pequeno, sem utilidade de uso (fragmentação externa) yos processos, de tempos em tempos, precisam ser re-alocados para eliminar os buracos (compactação) 2

Particionamento Dinâmico - Exemplo SO 28K SO SO SO Processo 320K Processo 320K Processo 320K 896K Processo 2 224K Processo 2 224K 576K 352K Processo 3 288K 64K Após carregar os três processos, um espaço de 64K fica disponível. Assim, não sobra espaço suficiente para um Processo 4 de 28K. Eventualmente, todos os três processos poderão estar bloqueados. Neste caso, o SO pode retirar o Processo 2 (o mais adequado) para trazer o Processo 4 (= 28K) 3

Particionamento Dinâmico - Exemplo... SO SO SO Processo 320K Processo 320K Processo 320K Processo 2 224K 224K Processo 4 28K Processo 3 288K Processo 3 288K Processo 3 288K 64K 64K 64K (*) Colcha de retalhos quando a memória fica repleta de pequenos espaços ociosos espalhados de forma não contígua. 4

Esquemas de Alocação Algoritmo First-Fit Procura a partir da memória o primeiro bloco livre que sirva Pode criar muitos pequenos blocos livres no início da memória Considerado o algoritmo mais rápido Gerenciamento de Recursos I O S.O. deve escolher o bloco de memória livre onde será colocado o processo Algoritmo Worst-Fit Escolhe o maior bloco livre a partir início da memória. Tende deixar buracos maiores que o Best-fit Algoritmo Next-Fit Escolhe o próximo bloco livre a partir da última alocação em que caiba o processo Tende a acabar com o grande bloco livre no final da memória Algoritmo Best-Fit Escolhe o menor bloco que comporte o processo Cria muitos buracos pequenos, exigindo mais compactações Oferece o pior desempenho 5

Particionamento Dinâmico - Buddy System a memória é organizada em blocos de 2 k ; L K U 2 L menor bloco que pode ser alocado 2 U maior bloco (tamanho da memória) reduz problema da colcha de retalhos (re-agrupamento) insere fragmentação interna 6

A 00K Gerenciamento de Recursos I Particionamento Dinâmico - Buddy System A=28K MB 28K 256K 52K B 240K A=28K 28K B=256K 52K C 44K A=28K C=64K 64K B=256K 52K D 232K A=28K C=64K 64K B=256K D=256K 256K B 240k A=28K C=64K 64K 256K D=256K 256K A 00K 28K C=64K 64K 256K D=256K 256K E 75K E=28K C=64K 64K 256K D=256K 256K C 44K E=28K 28K 256K D=256K 256K E 75K 52K D=256K 256K D 232K MB 7

Particionamento Paginado Gerenciamento de Recursos I A memória é particionada em pedaços de tamanho igual, assim como os processos; Os pedaços que compõem os processos são chamados de páginas e os pedaços de memória são as molduras de página (frames); Quando um processo é carregado, suas páginas são alocadas em quaisquer molduras disponíveis, não necessariamente contíguas; O S.O. precisa manter uma tabela de páginas por processo e uma lista de molduras disponíveis. 8

0 2 3 4 5 6 7 8 9 0 2 3 4 5 frames disponíveis 0 2 3 4 5 A.0 A. A.2 A.3 A.0 A. A.2 A.3 B.0 B. Gerenciamento de Recursos I Particionamento Paginado - Exemplo 6 7 8 9 0 2 3 4 Carrega Processo A 0 2 3 4 5 6 7 8 9 0 2 3 4 B.2 Carrega Processo B 0 2 3 4 5 6 7 8 9 0 2 3 4 A.0 A. A.2 A.3 B.0 B. B.2 C.0 C. C.2 C.3 Carrega Processo C 0 2 3 4 5 6 7 8 9 0 2 3 4 A.0 A. A.2 A.3 C.0 C. C.2 C.3 0 2 3 4 5 A.0 A. A.2 A.3 D.0 D. D.2 C.0 C. C.2 C.3 D.3 D.4 4 Retira Carrega Processo B Processo D 9 6 7 8 9 0 2 3

Tabelas de Páginas Gerenciamento de Recursos I Precisa ser mantida uma para cada processo, de forma a associar a página do processo com o frame correspondente em memória utilizado. 0 0 0 --- --- 2 2 2 --- 3 3 Processo B Processo A 0 0 7 0 4 2 3 8 9 0 Processo C 2 3 4 5 6 2 Processo D 3 4 Lista de frames livres 20

Endereço Lógico Exemplo: 6-bit endereço lógico 06-bit página # 0-bit offset 0 0 0 0 0 0 0 0 Deslocamento dentro de cada página Número da página 2

Tradução Endereço Lógico Físico Tradução em Paginação 6-bit endereço lógico 06-bit página # 0-bit offset 0 0 0 0 0 0 0 0 (*) Quantos frames e tamanho da MP? Tradução 0 2 0 0 0 0 0 0 0 0 0 0 Tabela de página de processo Página está no frame 6 da memória 0 0 0 0 0 0 0 6-bit endereço físico (absoluto) 22

Particionamento Segmentado Cada programa é subdividido em blocos de diferentes tamanhos, chamados segmentos. Quando um processo é carregado para a memória principal, cada segmento diferente pode ocupar qualquer lugar. O SO mantém uma tabela de segmentos de cada processo. Cada entrada contém: o início do endereço físico daquele segmento o tamanho do segmento (por proteção) Apresenta fragmentação externa 23

Tradução Endereço Lógico Físico Tradução em Segmentação 6-bit endereço lógico 04-bit segmento# 2-bit offset 0 0 0 0 0 0 0 0 0 0 0 Tamanho Base 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabela de segmento de processo + 0 0 0 0 0 0 0 0 0 0 0 0 6-bit endereço físico 24

Endereço Relativo = 502 00000 000 Processo do usuário (2700 Bytes) Particionamento Tradução de Endereços Endereço Lógico Página =, Offset = 478 00000 000 Página 0 Página Página 2 478 Paginação Page Size = K Fragmentação Interna Gerenciamento de Recursos I Endereço Lógico Segmento =, Offset 752 000 0000000 Seg gmento 0 Segmento 752 Segmentação Fragmentação Externa 25

Vantagens da Paginação e Segmentação Maior flexibilidade na alocação de espaços em memória (tabelas de páginas e de segmentos livres) Paginação Segmentação Endereçamento não contíguo em memória Baixa fragmentação interna Correlação com a lógica do programa 26

Swapping Gerenciamento de Recursos I Memória Disco A B Swap out B X Z Swap in Z 27

Overlay Gerenciamento de Recursos I programa - monolítico SO 480K programa - modularizado 32K main R.A R.B R.C 200K 95K 85K 0K residente 28

Hierarquia de Memória - Flexibilidade: Mais barato Maior capacidade Mais lento - Desempenho: Maior freqüência de acesso 29

Hierarquia de Memória Memória Cache tempo de resposta desempenho mapeamento por hardware pequena capacidade custo/bit elevado Memória Principal transparência flexibilidade mapeamento por software Capacidade elevada custo/bit baixo Memória Virtual 30

Memória Cache É usada com a finalidade de aumentar o desempenho (reduzir o tempo de resposta) da memória. É transparente ao S.O. Tem capacidade de armazenamento bem menor que a Memória Principal Segue os princípios similares aos da Memória Virtual Motivação: o programa faz constantes acessos à memória os processadores são mais rápidos que as memórias convencionais os acessos são geralmente localizados (localidade de referência) 3

O Sistema Cache Gerenciamento de Recursos I A informação é sempre buscada primeiro na Cache. Quando não está na Cache é carregada para ela. É É pelo menos uma ordem de grandeza mais rápida que a memória principal. CPU Cache Memória Principal Transferência de palavra Transferência de bloco 32

Tamanho da Cache Gerenciamento de Recursos I O Sistema Cache Caches pequenas têm desempenho ruim Organização Física acesso associativo acesso direto Tamanho do bloco a quantidade de dados trocados entre a cache e memória principal blocos maiores: maior taxa de acertos devido ao princípio da localidade blocos ainda maiores: menor taxa de acertos já que a probabilidade de acesso a uma palavra não carregada por causa do bloco maior é maior 33

Função de mapeamento Gerenciamento de Recursos I O Sistema Cache indica qual slot um bloco irá ocupar na cache quanto mais flexível, maior o custo de hardware para localizar um bloco Algoritmo de substituição indica o bloco a ser substituído algoritmo preferencial: Least-Recently-Used (LRU) Política de escrita quando atualizar a memória principal a cada escrita: mais acessos à memória (write-through) na substituição: problemas de consistência (write-back) 34

Mapeamento Memória x Cache 2 bits 4 bits 6 bits Tag Índice Seqüencial Memória Principal 00 0000 000000 00 0000 Bloco (K palavras) Número slot Tag 0000 Cache Bloco Endereços de memória 000000 Bloco Tamanho Bloco (K palavras) Tamanho Palavra 35

Operação de Leitura - Exemplo Início Acessa a Recebe endereço memória principal da CPU MISS Aloca slot cache para Cache O bloco está na cache? Bloco da MP Entrega palavra MP HIT Sim para a CPU Busca palavra e entrega à CPU Transfere bloco da MP para o slot da cache Fim 36

Tempo Médio de Acesso T +T 2 T 2 Média de Tempo de Acesso T T s Tempo médio T Tempo da Cache T 2 Tempo da MP 0 Taxa de Hit T s = H T + ( - H) (T + T 2 ) = T + ( - H) T 2 37

Medidas de Eficiência a) Eficiência de Acesso: b) Eficiência de Custo: T T C S + C 2 S 2 T s = T + ( Hit) T 2 C s = S + S 2 Eficiência de acesso menor maior C x = custo / bit S x = tamanho em bits 0 38

Níveis de Memória Cache 39