Sistemas Operacionais Gerência de Memória. Thiago Leite

Documentos relacionados
Fundamentos de Sistemas Operacionais

GERENCIAMENTO DE MEMÓRIA

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

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

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

Gerência de memória III


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

SISTEMAS OPERACIONAIS

Fundamentos de Sistemas Operacionais

Introdução. Considerações:

Prof. Adriano Maranhão

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Opera r cionais Gerência de Memória

LISTA DE EXERCÍCIOS 02

Gerenciamento de Memória

Sistemas Operacionais Gerência de Memória

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

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

Gerência de memória II

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

Sistemas Operacionais

Sistemas Operacionais

Organização e Arquitetura de Computadores I

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

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

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

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

SSC0640 Sistemas Operacionais I

Gerenciamento de memória

Infra-Estrutura de Software IF677

Sistemas Operacionais

Arquitetura e Organização de Computadores

Segmentação de Memória

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

Gerência de Memória. Sistemas Operacionais Flavio Figueiredo (

Gerenciamento de Memória

ARQUITETURA DE COMPUTADORES

Capítulo 4 Gerenciamento de Memória

AULA 14 - Memória Virtual

Sistemas Operacionais

Organização e Arquitetura de Computadores I

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

Organização e Arquitetura de Computadores

INE5412 Sistemas Operacionais I

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

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

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

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

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

Sistemas de Informação. Sistemas Operacionais

Arquitetura e Organização de Computadores

Gerência de Memória Memória Virtual e Paginação

Substituição de Páginas

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

Gerenciamento de memória

Capítulo 6 Nível do Sistema Operacional

Prof. Kleber R. Rovai

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

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

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

Arquitetura de Sistemas Operacionais

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

Gerenciamento de Memória

Gerenciamento de Memória

Aula 06. Slots para Memórias

Sistemas Operacionais I Memória Virtual

ICET CURSO: Ciência da Computação e Sistemas de Informação (Sistemas Operacionais Abertos) Estudos Disciplinares. Campus: Data: / / Nome: Questão 1:

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

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

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

GERENCIAMENTO DE PROCESSOS

Gerenciamento de memória

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

Sistemas Operacionais. Prof. André Y. Kusumoto

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

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

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

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

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

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

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

Swapping. Desvantagem:

Gerenciamento de Memória

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

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

Gerenciamento de Memória

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

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

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

ENADE 2011 SISTEMAS OPERACIONAIS

Transcrição:

Sistemas Operacionais Gerência de Memória Thiago Leite thiago.leite@udf.edu.br 1

Hierarquia de memórias Memórias pequenas e rápidas Memórias grandes e lentas 2

Como é o acesso a cada uma delas? Sistema operacional abstrai o acesso Uma parte do sistema operacional se encarrega da gestão da memória 3

Gerenciador de Memória Parte do sistema operacional que gerencia as memórias principais e secundárias Alocar e liberar memória quando necessário Identificar espaço livre e espaço utilizado 4

Vários esquemas diferentes de gerenciamento de memória níveis inferiores utilizam mecanismos rústicos por hardware níveis mais sofisticados utilizam softwares complexos 5

Como seria realizado o processo de gerenciamento de memória sem um gestor de memória? acesso sem abstração 6

Sem abstração de memória Endereços absolutos em memória MOV REGISTER1, 1000 7

Sem abstração de memória Processos podem alterar qualquer região da memória Apenas um programa por vez em memória 8

Como permitir que o sistema operacional co-exista com outro processo em memória? Os dados podem ser organizados em três variações possíveis de alocação da memória 9

Organização da Memória 10

Como executar múltiplas aplicações sem abstração? Troca de processos em memória (swapping) 11

Problemas ainda persistem Proteção de acesso Realocação de memória 12

Proteção de acesso dois processos tentando atuar na mesma região de memória 13

Problema de realocação 14

Realocação estática sistema define tamanhos de memória que os processos podem ocupar processos quando criados são divididos em módulos cada módulo possui uma variável para o endereço de acesso ex: JMP endx (endereço X) os processos não preenchiam totalmente as partições onde eram carregados 15

Realocação dinâmica Partições sem tamanho fixo, onde cada programa utiliza o espaço que necessita Registradores-base e registradores-limite Registrador-base possui endereço de onde o programa começa Registrador-limite identifica o limite máximo de leitura Em tempo de execução 16

Realocação dinâmica Instruções de leitura e escrita são modificadas Processo executa a instrução JMP 28 Hardware trata JMP 16412 17

Registrador-base e registrador-limite 18

E quando a memória física não comporta todos os processos? Dois métodos distintos para lidar com a sobrecarga de memória swapping memória virtual 19

Swapping Alocar os processos mais necessários Liberar espaço dos processos menos necessários Otimizar o uso da memória 20

Swapping 21

Swapping Processos devem ser alocados em espaços contínuos Espaços desalocados podem surgir Compactação de memória Registradores base e limite funcionam bem 22

Swapping Processos podem crescer Alocação dinâmica de memória Uso de área temporária de memória (heap) Se acabar o espaço em memória e em disco (memória swap) o processo é suspenso até que se libere mais memória 23

Alocação de espaço para expansão 24

Gerenciando a memória livre mapa de bits listas livres 25

Mapa de bits memória dividida em unidades de igual tamanho cada unidade correspondente à um bit no mapa (1 ocupado e 0 livre) quanto menor a unidade maior o mapa de bits e do uso eficiente da memória quanto maior a unidade menor o mapa de bits e maior o desperdício da memória 26

Listas Encadeadas segmentos são porções livres ou ocupadas de unidades sequenciais atualização simples quando um espaço contínuo é transformado de livre para ocupado ou o contrário ineficiente para acessos não sequenciais 27

Listas duplamente encadeadas as sequências de espaço livres são colocadas no início da lista sequências de espaços ocupados são colocadas no final da lista as sequências mais ao final da fila são as sequências menos solicitadas 28

Mapa de Bits e Listas Encadeadas 29

Lista Encadeada e suas Atualizações 30

Algoritmos de alocação de processos em memória first-fit next-fit best-fit worst-fit quick-fit 31

Algoritmo first-fit (primeiro encaixe) ocupa a primeira porção de memória disponível com o tamanho necessário ao processo 32

P3 P1 P4 P2 Exemplo de Algoritmo First-Fit 33

Processos a serem alocados em ordem 212k 417k 112k 426k Exemplo de Algoritmo First-Fit 34

Algoritmo next-fit (próximo encaixe) semelhante ao first-fit não inicia no início da lista a cada nova procura 35

Algoritmo best-fit (melhor encaixe) escolha na lista inteira o local mais apropriado para alocar nova área mais lento que os demais algoritmos curiosamente é o menos eficiente dos algoritmos apresentados muitos pequenos espaços não alocados e inúteis 36

Processos a serem alocados em ordem 212k 417k 112k 426k Exemplo de Algoritmo Best-Fit 37

Algoritmo worst-fit (pior encaixe) escolhe segmentos que sobrarão mais espaço depois de alojados simulações não apresentam bons resultados 38

Algoritmo quick-fit (rápido encaixe) mantém várias listas com os tamanhos de segmentos de memória mais solicitados percorre cada uma das listas como o algoritmo first-fit com a eficiência de uso do best-fit 39

Solicitação de mais espaço em memória Processos podem solicitar mais memória Alocação dinâmica de memória

Problema a resolver: bloatwares programas crescem mais rapidamente que a memória 1980: 4 MB para dezenas de usuários Atualmente: mínimo de 1 GB para rodar Windows 8 41

Problema a resolver: necessidade de execução simultânea de vários processos não individualmente comportados Coletivamente excedem a memória Exemplo: memória de 1 GB e dois processos de 1 GB cada precisam estar em execução simultaneamente 42

Primeira solução: Sobreposições (Overlays) Inicializado apenas o gerenciador de sobreposições Programador dividia o código em blocos (sobreposição) Gerenciador decide quais sobreposições deveriam ficar em memória 43

Sobreposição (Overlays) 44

Problemas de Sobreposições (Overlays) Divisão do programa em módulos pelo programador Propenso a erros (programadores erram) Que critérios seriam utilizados para gerir as sobreposições? 45

Memória virtual Cada programa possui espaço de endereçamento próprio Espaço de endereçamento dividido em blocos (páginas ou frames) O SO é responsável pela gestão das páginas 46

Gestor de Memória mapeia memória principal e secundária em memória virtual Programa pode referenciar parte que está ou não em memória física (principal) SO é responsável em carregar página de referência quando ela não está na memória física 47

Multiprogramação com memória virtual CPU poderá ser dada a outro processo enquanto um processo espera sua página ser carregada Melhor aproveitamento da CPU 48

Memória virtual Sistemas utilizam técnica de paginação Conjunto de endereços virtuais Constitui o espaço de endereçamento virtual Lista de ponteiros para os endereços físicos Em computadores sem memória secundária o endereço virtual é idêntico ao endereço físico 49

Dispositivo responsável em traduzir as instruções de acesso à memória virtual MMU (Memory Management Unit) 50

Localização e função da MMU 51

Tabela de páginas Mapeia endereços virtuais em endereços físicos Exemplo tabela de endereços virtuais de 16 bits de páginas de 64KB memória física de 32 KB de memória física programas de 64 KB 52

Tabela de páginas 53

Paginação Páginas (pages) Molduras de página (page frames) Páginas em memória física Apenas as molduras de páginas podem acessadas simultaneamente E se tentarmos acessar uma instrução não presente? 54

Interrupção por falta de moldura de página (page fault) Escolhe moldura pouca usada e salva em disco Carrega nova moldura Atualiza tabela de páginas Reinicia instrução causadora 55

Freqüência de faltas de páginas de acordo com o número de molduras alocadas 56

Tradução de Endereços pela MMU 57

Exemplo de uso da MMU apresentada 15 bits de memória física Page fault 16 bits de entrada na tabela de páginas endereço 37413 (1001 0010 0010 0101) endereço físico 21029 (101 0010 0010 0101) endereço 57348 (1110 0000 0000 0100) 58

Tabela de Páginas 15 00 0 14 00 0 13 00 0 12 10 1 11 00 0 10 00 0 9 00 0 8 11 1 7 00 0 6 01 1 5 00 0 4 00 0 3 00 0 2 00 0 1 00 1 0 00 0 Saída: {11} 1110 1110 0000 Conversão de memória virtual de 16 bits para memória física de 14 bits Entrada: {1000} 1110 1110 0000 Exemplo de Tabela de Páginas 59

Possível solução para alocar mais molduras de página Páginas compartilhadas 60

Dois processos que compartilham o mesmo programa compartilhando sua tabela de página 61

Bibliotecas compartilhadas Evitar ligar estaticamente todas as bibliotecas a cada programa Windows DLL (Dynamic-Link Library) Linux SO (Shared Object) 62

No Linux $ ldd /bin/ls linux- gate.so.1 => (0xffffe000) libselinux.so.1 => /lib/libselinux.so.1 (0xb76e7000) librt.so.1 => /lib/librt.so.1 (0xb76dd000) libcap.so.2 => /lib/libcap.so.2 (0xb76d7000) libacl.so.1 => /lib/libacl.so.1 (0xb76cd000) libc.so.6 => /lib/libc.so.6 (0xb755f000) libdl.so.2 => /lib/libdl.so.2 (0xb755a000) /lib/ld- linux.so.2 (0xb7723000) libpthread.so.0 => /lib/libpthread.so.0 (0xb753f000) libattr.so.1 => /lib/libattr.so.1 (0xb7539000) 63

No Mac OS X $ otool - L /bin/ls /bin/ls: /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0) /usr/lib/libutil.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libsystem.b.dylib (compatibility version 1.0.0, current version 159.1.0) 64

Revisão Hierarquia de memórias Gerenciador de memória Gerenciamento de memória de baixo nível Sistemas sem abstração de memória Organização da memória Executando múltiplas aplicações sem abstração Proteção da memória em sistemas sem abstração Problema de realocação de memória Realocação estática de memória Realocação dinâmica de memória Espaço de endereçamento Registrador-base e registrador-limite Swapping Memória virtual MMU Memória heap Sobreposições Multiprogramação com memória virtual Tabela de páginas Páginas e molduras de páginas Paginação Páginas compartilhadas Bibliotecas compartilhadas 65

Universidade Federal de Alagoas As páginas no armazenamento virtual são o mesmo que: a)page Frames. b)programas. c)partes de Programas. d)setores do disco. e)espaço de memória. 66

Correios (CESPE) Um programa carregado na memória e em execução é denominado processo. Nos sistemas operacionais de tempo compartilhado e nos multiprogramados, os jobs devem ser mantidos na memória ao mesmo tempo que são executados e, por isso, o sistema deve prover recursos de gerência de memória e proteção. a) Certo b) Errado 67

Tribunal Regional do Trabalho A Memory Management Unit (MMU) tem como função: a)mapear os endereços virtuais para endereços físicos de memória. b)dividir a memória em partições de tamanhos variados. c)pesquisar e selecionar o job que melhor se ajuste ao tamanho da partição. d)gerenciar os registradores de base e registradores de limite. 68

FUB (CESPE) Em sistemas multiprogramados, uma forma de resolver o problema da realocação consiste em alterar as instruções do programa de acordo com a partição de memória em que ele será carregado. a) Certo b) Errado 69

FUB (CESPE) Swaping é a troca de processos entre a memória e o disco, quando a memória principal não é suficiente para conter todos os processos. a) Certo b) Errado 70

FUB (CESPE) Para que um programa possa ser executado, o seu tamanho, incluindo os dados e a pilha, não pode ser maior que a quantidade de memória física disponível no computador para a sua execução. a) Certo b) Errado 71

DETRAN-ES (CESPE) No gerenciamento de memória virtual, um sistema operacional pode ter uma parte dos espaços de endereçamento atribuída à memória principal e outra ao disco rígido, sendo possível alternar o uso desses espaços de acordo com a necessidade de gerenciamento e uso. a) Certo b) Errado 72

Universidade Federal de Pernambuco Um dos tipos de gerenciamento de memória utilizados por sistemas operacionais é a memória virtual. Este tipo de memória pode ser gerenciada por segmentação. Assinale a alternativa que descreve o funcionamento do gerenciamento de memória virtual por segmentação: a)divide o espaço de endereçamento virtual e espaço de endereçamento real em blocos do mesmo tamanho chamados de segmentos. b)divide o espaço de endereçamento virtual e espaço de endereçamento real em blocos do mesmo tamanho chamados de buffer. c)divide o espaço do endereçamento virtual em blocos de tamanhos diferentes chamados segmentos. d)divide o espaço de endereçamento virtual e espaço de endereçamento real em blocos do mesmo tamanho chamados de páginas. e)divide o endereçamento memória virtual em partes semelhantes chamadas de blocos. 73