MEMÓRIA LÓGICA E FÍSICA (1)

Documentos relacionados
Capítulo 6 Gerência de Memória 103

Fundamentos de Sistemas Operacionais

Sistemas Opera r cionais Gerência de Memória

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

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

AULA 14 - Memória Virtual

Organização e Arquitetura de Computadores

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

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

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

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


Introdução. Considerações:

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

Gerenciamento de Memória

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

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

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/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

Sistemas Operacionais

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

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

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

Gerenciamento de Memória

SISTEMAS OPERACIONAIS

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

GERENCIAMENTO DE MEMÓRIA

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

Sistemas de Informação. Sistemas Operacionais

Gerência de memória II

Gerência de memória III

Sistemas Operacionais

Gerenciamento de Memória

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

Arquitetura e Organização de Computadores

Segmentação de Memória

Fundamentos de Sistemas Operacionais

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

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

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

Sistemas Operacionais

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

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

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

SSC0640 Sistemas Operacionais I

ENADE 2011 SISTEMAS OPERACIONAIS

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Gerenciamento de Memória

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

Gerenciamento de Memória

Organização e Arquitetura de Computadores I

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

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

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

Sistemas Operacionais

Arquitetura e Organização de Computadores

Arquitetura de Sistemas Operacionais

SISTEMAS OPERACIONAIS

Aula 10 Gerenciamento de Memória

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

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

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

Capítulo 6 Nível do Sistema Operacional

Prof. Adriano Maranhão

FRAGMENTAÇÃO/COMPARTILHAMENTO DE MEMÓRIA AULA 12 Sistemas Operacionais Gil Eduardo de Andrade

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

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

Sistemas Operacionais I Memória Virtual

Sistemas Operacionais Memória Virtual

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

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

Paginação e Segmentação. Memória Principal

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

Sistemas Operacionais. Gerência de Memória

Sistemas Operacionais: Memória Virtual

Infra-Estrutura de Software IF677

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

Sistemas Operacionais

Sistemas Operacionais

LISTA DE EXERCICIOS 2

Organização e Arquitetura de Computadores I

Sistemas Operacionais

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

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

Sistemas Operativos: Gestão de Memória

Substituição de Páginas

GERENCIAMENTO DE PROCESSOS

Gerenciamento de Memória

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

Implementação de Tarefas em Kernel Completo

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

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

Transcrição:

GERÊNCIA DE MEMÓRIA memória = vetor de palavras (ou bytes), cada uma com endereço próprio a memória é usada para armazenar os diversos programas em execução, bem como os dados sobre a execução dos programas na multiprogramação diversos processos são colocados na memória ao mesmo tempo para que o chaveamento entre eles seja o mais rápido possível o SO deve permitir que os processos compartilhem a memória de forma segura e eficiente, usando os recursos disponíveis no hardware 1

MEMÓRIA LÓGICA E FÍSICA (1) memória lógica é aquela que o processo enxerga, ou seja, aquela que o processo é capaz de acessar os endereços manipulados pelo programa são lógicos em geral capa processo possui uma memória lógica independente da memória lógica dos outros processos memória física é aquela que é efetivamente acessada pelo circuito integrado de memória dois processos podem ter espaços de endereçamento iguais que correspondem a áreas diferentes do espaço de endereçamento físico a unidade de gerência de memória (MMU): provê mecanismos de gerência de memória para o SO converte/mapeia endereços lógicos em físicos 2

MEMÓRIA LÓGICA E FÍSICA (2) quando os endereços lógicos coincidem com os endereços físicos, pode-se implementar proteção de memória usando dois registradores de limite os endereços do programa são gerados a partir de 0 e devem ser ajustados por um carregador realocador durante a carga relocação em tempo de carga 3

MEMÓRIA LÓGICA E FÍSICA (3) quando os endereços lógicos não coincidem com os físicos, pode-se trabalhar com um registrador de limite e outro de base os endereços são gerados a partir de 0, mas não é necessária nenhuma alteração de endereço o carregador é chamado de absoluto relocação em tempo de execução 4

MEMÓRIA LÓGICA E FÍSICA (4) o acesso aos registradores de limite e de base é feito através de instruções privilegiadas o conteúdo desses registradores faz parte do contexto do processo técnicas de gerência de memória partições fixas partições variáveis swapping paginação segmentação segmentação paginada 5

PARTIÇÕES FIXAS (1) é simples reserva-se uma área de memória para o SO o resto da memória é dividido em partições fixas de tamanhos diferentes o número de partições/processos em execução é fixo novos processos devem aguardar que uma partição de tamanho suficiente fique livre há desperdício de memória com: fragmentação interna fragmentação externa 6

PARTIÇÕES FIXAS (2) Memória Física Sistema Operacional 225 Kbytes Partição 1 200 Kbytes Partição 2 100 Kbytes Partição 3 50 Kbytes Partição 4 25 Kbytes 7

PARTIÇÕES VARIÁVEIS (1) as partições são ajustadas dinamicamente às necessidades dos processos o tamanho e o número de partições é variável o SO mantém uma lista de áreas livres de memória quando for necessário alocar memória, percorre-se a lista usando uma das seguintes técnicas: first-fit: a primeira área suficiente best-fit: a que deixa a menor sobra worst-fit: a que deixa a maior sobra circular-fit (ou next-fit): a próxima a partir da última alocação last-fit: a última área 8

PARTIÇÕES VARIÁVEIS (2) a área necessária é alocada e o restante continua livre quando um processo termina, a memória que ele ocupava é liberada áreas livres adjacentes devem ser agrupadas a alocação pode ser: exata: não ocorre fragmentação interna podem surgir áreas de memória pequenas, difíceis de serem alocadas em parágrafos (ou blocos): há uma pequena fragmentação interna facilita o alinhamento de variáveis na memória são necessários menos bits para endereçar uma área de memória 9

PARTIÇÕES VARIÁVEIS (3) a lista de áreas livres contém um descritor para cada área com: o endereço, o tamanho e apontadores para lacunas adjacentes este descritor pode ser armazenado no início do próprio parágrafo, evitando a necessidade de alocar memória para a lista de áreas livres a fragmentação externa é um problema grave pode-se compactar a memória, agrupando as áreas livres de memória, o que exige: certo tempo de processamento e algum mecanismo de relocação dinâmica 10

PARTIÇÕES VARIÁVEIS (4) exemplo: os seguintes processos devem ser executados em um sistema com 256Kbytes de memória física (o SO ocupa 40Kbytes da memória física) Processo Mem. (K) Tempo P1 60 10 P2 100 5 P3 30 20 P4 70 8 P5 50 15 11

PARTIÇÕES VARIÁVEIS (5) 0K SO P1 216K SO P1 SO 60K P5 10K SO P5 60K SO P5 60K SO Processo Mem. (K) Tempo P1 60 10 P2 100 5 P3 30 20 P4 70 8 P5 50 15 156K P2 P4 100K P4 100K 110K 216K 166K 30K 30K P3 56K P3 P3 P3 26K 26K 26K 26K 256K T=0 T=5 T=10 T=13 T=20 T=25 12

EXERCÍCIO (1) Considere um sistema cuja gerência de memória é feita através de partições variáveis. Nesse momento, existem as seguintes lacunas (áreas livres): 10K, 4K, 20K, 18K, 7K, 9K, 12K e 13K, nessa ordem. Quais espaços serão ocupados pelas solicitações: 5K, 10K e 6K, nessa ordem, se: first-fit for utilizado? best-fit for utilizado? worst-fit for utilizado? circular-fit for utilizado? last-fit for utilizado? 13

EXERCÍCIO (2) Gerencie uma área de memória de usuários de 640 KB através da utilização de múltiplas partições variáveis para as seguintes requisições: Processo: A B C D E Chegada: 0 0 0 11 12 Memória (KB): 320 192 128 224 64 Duração: 10 15 8 10 9 use a política first-fit use a política best-fit use a política worst-fit 14

SWAPPING (1) é utilizado quando não é possível manter todos os processos simultaneamente na memória um processo sofre swap-out quando ele é retirado da lista de prontos, inserido na lista de suspensos e copiado da memória para o disco um processo sofre swap-in quando ele retorna para a memória o swapping permite que o SO execute mais processos do que a memória normalmente suportaria 15

SWAPPING (2) o custo para os processos é alto o processo deve ficar no disco um um tempo razoável para justificar o swapping é mais aceitável para processos que executam em segundo plano do que para processos interativos pode ser usado tanto com partições fixas quanto com partições variáveis 16

PAGINAÇÃO (1) acaba com a necessidade de colocar o programa em uma área contígua de memória elimina a fragmentação externa o espaço de endereçamento lógico (memória lógica) é dividido em páginas de tamanho fixo cada endereço lógico pode ser dividido em duas partes: número de página e deslocamento todos os bytes de uma mesma página possuem o mesmo número de página, porém, deslocamentos diferentes 17

PAGINAÇÃO (2) o espaço de endereçamento físico (memória física) é dividido em quadros (frames ou páginas físicas), de tamanho igual ao tamanho da página cada endereço físico pode ser dividido em duas partes: número de quadro e deslocamento as páginas de um programa podem ser colocadas em quaisquer quadros disponíveis da memória física o SO gerencia a carga do programa montando uma tabela de páginas que contém o número do quadro onde cada página foi carregada 18

visão geral: PAGINAÇÃO (3) o compilador gera código para os programas como se eles fossem executar de forma contígua na memória o SO carrega as páginas do processo em quaisquer quadros livres e cria a tabela de páginas o hardware converte endereços lógicos em físicos durante a execução com a ajuda da tabela de páginas 19

PAGINAÇÃO (4) exemplo: (páginas de 4Kbytes) qual o endereço físico correspondente ao endereço lógico 7K? 0K 4K 8K 12K 16K Página A Página B Página C Página D Memória lógica (páginas) Tabela de páginas 0 1 1 4 2 3 3 6 0 1 Página A 2 3 Página C 4 Página B 5 6 Página D 7 Memória física (quadros) 0K 4K 8K 12K 16K 20K 24K 28K 32K 20

PAGINAÇÃO (5) Endereço lógico página deslocamento frame deslocamento Endereço físico frame Tabela de páginas 21

PAGINAÇÃO (6) - EXERCÍCIOS considerando a tabela de páginas apresentada anteriormente, quais os endereços físicos correspondentes aos seguintes endereços lógicos? 1K? 14K? 17K? calcule o número de bits para página, quadro e deslocamento. Memória lógica = 512K, Memória física = 512K, Tamanho de página = 8K Tamanho de página = 4K, Número de páginas = 8, Número de quadros = 16 22

PAGINAÇÃO (7) a paginação não apresenta fragmentação externa, apenas uma pequena fragmentação interna, referente à última página do processo dimensões típicas: tamanho das páginas: 1Kbyte até 8Kbytes endereçamento lógico: 64Kbytes até vários Gbytes endereçamento físico: geralmente menor do que o lógico se as páginas forem maiores: um processo terá menos páginas e a tabela de páginas será menor a leitura do disco será mais eficiente maior fragmentação interna 23

PAGINAÇÃO (8) - IMPLEMENTAÇÃO o controle dos quadros livres pode ser implementado através de: um mapa de bits (pode ser lento com tabelas grandes com alta ocupação) lista encadeada de quadros livres a tabela de páginas pode ser implementada: através de registradores dedicados de acesso rápido na própria memória principal usando Translation Lookaside Buffer (TLB) 24

PAGINAÇÃO (9) - IMPLEMENTAÇÃO TP em registradores dedicados de acesso rápido: só pode ser usado com tabela pequenas é rápido na troca de contexto, os registradores devem ser salvos no descritor de processo TP na memória principal: usa dois registradores: PTBR (Page Table Base Register) e PTLR (Page Table Limit Register) suporta tabelas grandes o tempo de acesso à memória é duplicado na troca de contexto, o PTBR e o PTLR devem ser salvos no descritor de processo 25

PAGINAÇÃO (10) - IMPLEMENTAÇÃO TP usando Translation Lookaside Buffer (TLB): as entradas mais acessadas ficam em uma memória cache quando uma entrada é pesquisada pode ocorrer um acerto (um único acesso à memória) ou uma falha (dois acessos à memória e a informação é atualizada no TLB) o TLB geralmente é implementado usando memória associativa na troca de contexto, o PTBR e o PTLR devem ser salvos no descritor de processo e a cache deve ser esvaziada esquemas alternativos salvam o número do processo nas entradas do TLB 26

PAGINAÇÃO (11) - EXERCÍCIO Qual a taxa efetiva de acesso à memória, quando se tem tempo de acesso à memória associativa de 5ns, tempo de acesso à memória principal de 60ns e taxa de acerto de 80%? 27

PAGINAÇÃO (12) - PROTEÇÃO além do n. do quadro, cada entrada da TP pode conter: bit de válido/inválido bit de apenas leitura (read-only, RO) bit de apenas execução (execute-only, XO) bit de leitura e escrita (read-write, RW) o acesso a uma página de forma diferente do que foi definido nos seus bits gera uma interrupção de erro a proteção de memória é garantida pela MMU: o SO deve atualizar a tabela de páginas e os registradores PTBR e PTLR em modo monitor a partir daí, qualquer processo que tentar acessar uma posição de memória que não seja sua será abortado 28

PAGINAÇÃO (13) a grande capacidade de endereçamento dos processadores atuais exige uma TP muito grande solução: dividir a TP em dois níveis: diretório de TP e tabela de páginas o endereço lógico de 32 bits é formado por: 10 bits para definir a entrada do diretório da TP 10 bits para definir o número da página na TP 12 bits de deslocamento. 29

PAGINAÇÃO (14) 30

PAGINAÇÃO (15) - EXERCÍCIO Considere que os processos da tabela abaixo devem ser executados em um SO com paginação. A memória total é de 64K, o tamanho das páginas é de 4K e o SO ocupa 8K. Mostre como seria a alocação de quadros para cada processo. Processo Mem. (K) T. Cheg T. Exec P1 8 0 10 P2 6 1 15 P3 15 2 10 P4 5 3 14 P5 10 15 5 31

SEGMENTAÇÃO (1) a memória lógica geralmente é vista como uma coleção de segmentos de tamanho variável quatro segmentos típicos são código, dados estáticos, dados dinâmicos e pilha o programador atribui nome aos segmentos o compilador transforma esses segmentos em números um endereço lógico é formado por um número de segmento e por um deslocamento dentro do segmento no momento da carga, o SO cria uma tabela de segmentos, guardando a posição da memória física e o tamanho de cada segmento 32

SEGMENTAÇÃO (2) SUBROTINA SEG 0 PROG. PRINC. SEG 2 SQRT SEG 1 Tabela de Segmentos PILHA Limite Base SEG 3 0 1000 1400 1 400 6300 2 400 4300 3 1100 3200 SEG 4 4 1000 4700 TAB. SIMB. SEG 0 SEG 3 SEG 2 SEG 4 SEG 1 1400 2400 3200 4300 4700 5700 6300 6700 33

SEGMENTAÇÃO (3) Endereço lógico segmento deslocamento Trap N < + S endereço absoluto Endereço físico limite base Tabela de segmentos 34

SEGMENTAÇÃO (4) a TS é usada pelo hardware para converter endereços lógicos em físicos (implementação igual à da TP) também são usados os mesmos bits de proteção da TP não apresenta fragmentação interna, mas pode ocorrer fragmentação externa a grande vantagem da segmentação está na facilidade de compartilhar memória vários processos podem, por exemplo, compartilhar os segmentos de uma biblioteca (marcados como de apenas leitura), evitando-se a necessidade de haver várias cópias do mesmo código na memória 35

SEGMENTAÇÃO PAGINADA atenua a fragmentação externa da segmentação os programas são formados por segmentos que por sua vez são divididos em páginas apresenta uma pequena fragmentação interna CPU s d Tabela de Segmentos não <= sim + Base da Tamanho Tabela de do Páginas Segmento trap d p d' STBR + f f d' Memória Física 36

BIBLIOGRAFIA Material elaborado a partir do livro-texto da disciplina: OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva; TOSCANI, Simão Sirineo. Sistemas Operacionais. Porto Alegre: Instituto de Informática da UFRGS/Editora Sagra Luzzatto, 2000. 37