Gerenciamento de Memória

Documentos relacionados
Arquitetura do 8086/8088

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

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

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

Sistemas Opera r cionais Gerência de Memória

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

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

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

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

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

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

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

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

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

Sistemas de Informação. Sistemas Operacionais

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

Gerenciamento de Memória


( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

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

Sistemas Operacionais

Gerenciamento de Memória

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

Sistemas Operativos: Gestão de Memória

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

Sistemas Operacionais

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. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Mapeamento de Memória e I/O

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

GERENCIAMENTO DE PROCESSOS

AULA 14 - Memória Virtual

Aula 10 Gerenciamento de Memória

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

SSC0640 Sistemas Operacionais I

Sistemas Operacionais. Gerência de Memória

Sistemas Operacionais

Capítulo 4 Gerenciamento de Memória

Sistemas Operacionais Memória Virtual

ENADE 2011 SISTEMAS OPERACIONAIS

Gerência de memória III

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

Organização de um Sistema Operativo

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

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

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

Gerenciamento de memória

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

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

Gerenciamento de Memória

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

Processos Concorrentes

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

Capítulo 7 Gerência de Memória

Administração de Memória

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

Organização e Arquitetura de Computadores I

Sistemas Operacionais

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

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

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

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

Fundamentos de Sistemas Operacionais

LISTA DE EXERCICIOS 2

Transcrição:

Gerenciamento de Memória Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright (c) Walter Fetter Lages p.1

Introdução Alocação e desalocação de memória Estática Dinâmica Memória virtual Overlay Paginação Segmentação de memória Copyright (c) Walter Fetter Lages p.2

Sistemas Monotarefa Um único programa na memória O programa utiliza toda a memória O programa deve ter todos os drivers de I/O Divisão da memória entre o programa e o sistema operacional Copyright (c) Walter Fetter Lages p.3

Sistemas Multitarefa Partições fixas Partições definidas manualmente pelo operador Uma partição de tamanho suficiente é alocada para cada tarefa Em geral, o número de tarefas > número de partições =>diversas politicas para utilização das partições Uma fila de tarefas para cada partição Uma fila única Fila única com best-fit Fila única com best-fit e máximo de skip-over Copyright (c) Walter Fetter Lages p.4

Partições Fixas Copyright (c) Walter Fetter Lages p.5

Partições Variáveis O tamanho das partições varia conforme a criação/destruição das tarefas Fragmentação de memória Compactação de memória Consome muito tempo -> normalmente feito durante a alocação/desalocação de memória em sistemas não tempo real Espaço para a memória das tarefas crescer Alocação dinâmica de memória para dados Copyright (c) Walter Fetter Lages p.6

Lay-out de Memória das Tarefas Copyright (c) Walter Fetter Lages p.7

Métodos de Gerenciamento Bit-map Memória dividida em unidades de alocação Existe um bit-map para sinalizar se cada unidade de alocação está alocada ou livre Procura por espaços livres não é eficiente Copyright (c) Walter Fetter Lages p.8

Métodos de Gerenciamento Listas ligadas Existe uma lista ligada que relaciona os blocos de memória alocados e livres Normalmente a lista é ordenada por endereço Algoritmos de Alocação de memória First-fit Next-fit Best-fit Worst-fit Quick-fit Copyright (c) Walter Fetter Lages p.9

Métodos de Gerenciamento Buddy System Utiliza o fato dos endereços serem binários Existe uma lista de blocos livres de tamanho 1, 2, 4, 8... tamanho da memória Ineficiente no uso da memória Fragmentação interna Copyright (c) Walter Fetter Lages p.10

Buddy System Copyright (c) Walter Fetter Lages p.11

Relocação Em sistemas multitarefa, cada tarefa terá um endereço inicial diferente. Como o programador/compilador/linker saberá o endereço inicial (e endereços de subrotinas, dados, etc...) da tarefa? Problema da relocação Gerar apenas código com endereços relativos Código relocável Relocação durante a carga da tarefa na memória Copyright (c) Walter Fetter Lages p.12

Segmentação Associa-se a cada área de memória um valor de base e um valor de limite base=endereço inicial limite=endereço máximo ou tamanho Todas as tarefas são codificadas assumindo que a sua área de memória começa em 0 Quando a tarefa é selecionada para executar, base e limite são carregados em registradores especiais na CPU Copyright (c) Walter Fetter Lages p.13

Segmentação Endereço final = Offset + base Soma feita por hardware a cada acesso à memória Endereços são verificados quanto ao limite Uma tarefa não pode acessar a área das outras Copyright (c) Walter Fetter Lages p.14

Segmentação O seletor e descritor de segmento são controlados pelo sistema operacional O offset é controlado pelo programa de aplicação Proteção Usualmente o descritor de segmentos tem alguns bits associados que são utilizados para determinar as características de proteção do segmento Permissões de leitura, escrita, execução Cache de descritor de segmento Evita dois acessos a memória Alterado apenas quando o registrador de seletor de segmento é alterado Copyright (c) Walter Fetter Lages p.15

Segmentação no ix86 Local Descriptor Table (LDT) Global Descriptor Table (GDT) Copyright (c) Walter Fetter Lages p.16

GLDT e LDT Copyright (c) Walter Fetter Lages p.17

Segmentação no ix86 Copyright (c) Walter Fetter Lages p.18

Seletor de Segmento no ix86 Copyright (c) Walter Fetter Lages p.19

Descritor de Segmento Copyright (c) Walter Fetter Lages p.20

Segmentação no 8086/8088 Processadores sem modo protegido Sem proteção, não tem sentido a existência de permissões e limite no segmento O descritor de segmento resume-se à base Como os registradores são de 16 bits decidiu-se limitar o início de segmentos apenas alinhados com "parágrafos" Segmentação mal implementada O "tamanho máximo"do segmento é 64KB O limite do segmento não é garantido Na verdade é apenas um esquema para endereçar 1MB utilizando 2 registradores Copyright (c) Walter Fetter Lages p.21

Segmentação no 8086/8088 Endereço físico=reg. de segmento * 16 + offset Endereço físico=reg. de segmento «4 + offset Copyright (c) Walter Fetter Lages p.22

Memória Virtual Paginação Falta de página Page-table Endereço Virtual Físico Copyright (c) Walter Fetter Lages p.23

Tabela de Páginas Copyright (c) Walter Fetter Lages p.24

Hardware de Paginação Usualmente a tabela de páginas é mantida em memória e não em registradores Registrador de base da tabela de páginas Translation look-aside buffer (TLB) Evita dois acessos a memória Memória associativa Páginas também podem ter bits de proteção associados Bit de presença/ausência Copyright (c) Walter Fetter Lages p.25

Páginas de 4KB no ix86 Copyright (c) Walter Fetter Lages p.26

Páginas de 4MB no ix86 Copyright (c) Walter Fetter Lages p.27

Segmentação e Paginação no ix86 Copyright (c) Walter Fetter Lages p.28

Proteção de Memória no ix86 Copyright (c) Walter Fetter Lages p.29

Proteção de I/O no ix86 Existe um nível de privilégio de I/O Apenas processos com nível de privilégio menor ou igual podem executar instruções de I/O Associado a cada processo pode existir um bitmap de permissões de I/O Apenas as portas habilitadas podem ser acessadas Hardware Virtual Virtualização de dispositivos Copyright (c) Walter Fetter Lages p.30

Verificação de Privilégios Copyright (c) Walter Fetter Lages p.31

I/O Permission Bit Map Copyright (c) Walter Fetter Lages p.32